public class MyRefClass
{
...
string Name { get; set; }
...
}
public class MyPersistedClass
{
public virtual MyRefClass { get; set; }
}
假设我有一个引用类类型作为我的持久化类的属性。如果我不需要存储引用类的完整细节,只需要名称,以便在加载持久类(水合)时可以通过名称重新加载...
给定一种类似于NHibernate使用NHibernate.Type.EnumStringType映射将枚举存储为字符串的方式的机制,我将如何针对不同的对象类型执行类似的操作。
<key-property name="MyEnumType" type="NHibernate.Type.EnumStringType`1[[MyEnumTypeDomain.MyEnumType, MyEnumTypeAssembly]], NHibernate"/>
我需要实现什么类或接口才能让我做类似的事情?
答案 0 :(得分:0)
您需要提供自己的IUserType实现(请参阅http://nhforge.org/blogs/nhibernate/archive/2009/10/15/mapping-different-types-iusertype.aspx)
重要的位是NullSafeGet(您从数据库构造对象)和NullSafeSet(您将对象转换为值以存储在数据库中)