Wie implementiere ich IUserType richtig?
Ich muss eine erstellenbenutzerdefinierte Art zumNHibernate indem Sie eine neue Mapper-Klasse schreiben, die implementiert wirdIUserType
. Während es relativ einfach ist, die meisten Methoden und Eigenschaften zu überschreiben, habe ich einige Schwierigkeiten zu verstehen, wie man mit den folgenden Mitgliedern richtig umgeht:
object Assemble(object cached, object owner);
object DeepCopy(object value);
object Disassemble(object value);
object Replace(object original, object target, object owner);
Ich verstehe nicht, was genau ihr Zweck ist; und noch wichtiger, wie man sie richtig umsetzt. Die meisten Beispiele, die ich gesehen habe, geben nur den rohen Eingabeparameter zurück.
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;
}
So implementieren Sie diese Methoden richtig in einem realen Fall oder komplexeren Szenario?