我刚刚开始使用NHibernate(看起来似乎是第15次)并且遇到了以下问题。
下表:
Table Facility
Column FACILITY_ID integer
Column NAME varchar2(50)
Column MONTH varchar2(5)
无论出于何种原因,month是字符串而不是本机Date类型,如下所示:
"200811" represents 11/01/2008
"200307" represents 07/01/2003
you get the idea
我想将它映射到以下类
public class Facility {
int Id {get; set;}
string Name {get; set;}
DateTime Month {get; set;}
}
我想将MONTH列映射到Month属性,但不太了解如何处理这种情况。显然,我可以有一个受保护的属性字符串MonthString并且具有Month属性Parse该列,但这看起来很蹩脚。有更好的解决方案吗?
答案 0 :(得分:1)
我认为最好的解决方案可能是使用custom value type。
答案 1 :(得分:0)
如果无法修改数据库架构,答案为IUserType
。 Here is a good write-up
有许多扩展点可以帮助您解决NHibernate中的复杂问题。最有用的扩展点是IUserType。