我有一个班级
public class Site {
public DateTime SiteMonth {get; set;}
}
在数据库中,SiteMonth表示为yyyymm格式的整数。
有没有办法在NHibernate中映射它而不在我的Site类上引入新属性?
答案 0 :(得分:2)
是 - 制作一个简单的IUserType
,它在整数格式和DateTime之间进行映射。然后将type
元素的property
属性设置为该用户类型的AssemblyQualifiedName
。
Ayende对如何实现用户类型有example。
哦,是的,如果你使用Fluent NHibernate来做你的映射,你可以这样做:
Map(d => d.MyFunkyWeirdLegacyDateTime)
.SetAttribute("type", typeof(MyCustomDateTime).AssemblyQualifiedName);
答案 1 :(得分:1)
我刚刚在Fluent NHibernate Wiki中遇到this,这是在AutoMapping约定中,但在Fluent Mapping Conventions部分中,它提到了AutoMapping约定也适用于Fluent Mapping。