NHibernate.Lob.External.AbstractExternalBlobType.NullSafeSet C# (CSharp) Method

NullSafeSet() public method

public NullSafeSet ( IDbCommand cmd, object value, int index, ISessionImplementor session ) : void
cmd IDbCommand
value object
index int
session ISessionImplementor
return void
		public override void NullSafeSet(IDbCommand cmd, object value, int index, ISessionImplementor session)
		{
			if (value == null)
			{
				((IDataParameter)cmd.Parameters[index]).Value = DBNull.Value;
			}
			else
			{
				IExternalBlobConnection conn = GetExternalBlobConnection(session);
				IExternalBlobConnection blobconn;
				byte[] identifier;
				if (!ExtractLobData(value, out blobconn, out identifier) || !conn.Equals(blobconn)) // Skip writing if an equal connection is used
					using (ExternalBlobWriter writer = conn.OpenWriter())
					{
						WriteLobTo(value, writer);
						identifier = writer.Commit();
					}
				((IDataParameter)cmd.Parameters[index]).Value = identifier;
			}
		}

Same methods

AbstractExternalBlobType::NullSafeSet ( IDbCommand cmd, object value, int index, bool settable, ISessionImplementor session ) : void