0
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"/>

我需要实现什么类或接口来允许我做类似的事情?

4

1 回答 1

0

您需要提供自己的 IUserType 实现(请参阅http://nhforge.org/blogs/nhibernate/archive/2009/10/15/mapping-different-types-iusertype.aspx

重要的位是 NullSafeGet(从数据库构造对象)和 NullSafeSet(将对象转换为存储在数据库中的值)

于 2012-10-12T09:16:52.370 回答