English 中文(简体)
NHibernate: 将非标准方式存储的值映射为DateTime的最佳方法
原标题:
  • 时间:2008-12-26 00:02:26
  •  标签:

我刚刚开始使用NHibernate(看起来好像是第15次),遇到了以下问题。

下表:

Table Facility
Column FACILITY_ID integer
Column NAME varchar2(50)
Column MONTH varchar2(5)

出于各种原因,月份是字符串而不是本地日期类型,且如下所示:

"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列映射到月份属性,但不太知道如何处理这种情况。显然,我可以有一个受保护的属性字符串MonthString,并让月份属性解析该列,但那似乎有点不好。有更好的解决方案吗?

问题回答

我认为最好的解决方案可能是使用自定义值类型

如果您无法修改数据库架构,则答案为IUserType这里有一篇好的描述

有许多扩展点可以帮助您解决NHibernate中的复杂问题。最有用的扩展点是IUserType。





相关问题
热门标签