将属性类中的字段映射为数据库列值

时间:2012-10-12 05:38:00

标签: c# nhibernate c#-4.0 nhibernate-mapping

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

我需要实现什么类或接口才能让我做类似的事情?

1 个答案:

答案 0 :(得分:0)

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

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