public override object Disassemble(object value, ISessionImplementor session, object owner)
{
if (value == null) return null;
IExternalBlobConnection blobconn;
byte[] identifier;
if (this.ExtractLobData(value, out blobconn, out identifier))
{
IExternalBlobConnection conn = GetExternalBlobConnection(session);
if (conn.Equals(blobconn))
return identifier;
}
throw new Exception("Unable to cache an unsaved lob.");
}