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

C# 将属性类中的字段映射为数据库列值,c#,nhibernate,c#-4.0,nhibernate-mapping,C#,Nhibernate,C# 4.0,Nhibernate Mapping,假设我有一个引用类类型作为持久化类的属性。如果我不需要存储引用类的全部细节,只需要名称,以便在加载持久化类(水合)时可以通过名称重新加载它 给定一种类似于NHibernate使用NHibernate.Type.EnumStringType映射将枚举存储为字符串的方式的机制,我将如何为不同的对象类型执行类似的操作 public class MyRefClass { ... string Name { get; set; } ... } public class MyPe

假设我有一个引用类类型作为持久化类的属性。如果我不需要存储引用类的全部细节,只需要名称,以便在加载持久化类(水合)时可以通过名称重新加载它

给定一种类似于NHibernate使用NHibernate.Type.EnumStringType映射将枚举存储为字符串的方式的机制,我将如何为不同的对象类型执行类似的操作

public class MyRefClass
{
    ...
    string Name { get; set; }
    ...
}


public class MyPersistedClass
{
    public virtual MyRefClass { get; set; }
}


我需要实现什么类或接口才能执行类似的操作?

您需要提供自己的IUserType实现(请参阅)


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

谢谢,另一个链接是
<key-property name="MyEnumType" type="NHibernate.Type.EnumStringType`1[[MyEnumTypeDomain.MyEnumType, MyEnumTypeAssembly]], NHibernate"/>