0

我刚刚开始使用 NHibernate(似乎是第 15 次)并且遇到了以下问题。

下表:

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

无论出于何种原因,月份都是一个字符串而不是原生 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 属性解析该列,但这似乎很恶心。有更好的解决方案吗?

4

2 回答 2

1

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

于 2008-12-26T02:07:56.020 回答
0

如果您无法修改数据库架构,答案是IUserType. 这是一篇很好的文章

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

于 2009-01-01T03:43:37.227 回答