0

私は 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 列を Month プロパティにマップしたいのですが、状況にアプローチする方法がよくわかりません。明らかに、保護されたプロパティ文字列 MonthString を使用して、Month プロパティにその列を解析させることもできますが、それは厄介なようです。より良い解決策はありますか?

4

2 に答える 2

1

最善の解決策は、カスタム値タイプを使用することだと思います。

于 2008-12-26T02:07:56.020 に答える
0

データベース スキーマを変更できない場合、答えはIUserTypeです。 ここに良い記事があります。

NHibernate には、複雑な問題を解決するのに役立つ拡張ポイントが多数あります。最も有用な拡張ポイントは IUserType です。

于 2009-01-01T03:43:37.227 に答える