Мне нужно создать настраиваемый тип для NHibernate путем написания нового класса сопоставления, который реализует IUserType
. Хотя относительно просто переопределить большинство методов и свойств, мне трудно понять, как правильно обращаться со следующими членами:
-
object Assemble(object cached, object owner);
-
object DeepCopy(object value);
-
object Disassemble(object value);
-
object Replace(object original, object target, object owner);
Я не понимаю, что именно их цель; и что более важно, как правильно их реализовать. Большинство примеров, которые я видел, просто возвращают исходный входной параметр.
public object DeepCopy(object value)
{
return value;
}
public object Replace(object original, object target, object owner)
{
return original;
}
public object Assemble(object cached, object owner)
{
return cached;
}
public object Disassemble(object value)
{
return value;
}
Как правильно реализовать эти методы в реальном случае или более сложном сценарии?