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