2009-04-09 12 views
1

整数値をvarcharカラムに保存している従来のデータベースで動作します。この列をInt32プロパティにマップする必要があります。データベース列のデータが数値またはNULLの場合は正常に機能します。(Fluent)NHibernate - VarcharからInt32へのマッピング

しかし、columnにnullの代わりに空の文字列が含まれていると、nhibernateがエラーをスローして整数に変換できないという問題があります。

は自動的に例外がいくつかのデフォルト値(この場合はゼロ)に上昇し、すべての値を変換するには、クラスのマッピングを設定することが可能ですか?

答えて

2

おそらくインターセプターを使用して値を変換することは可能です。あなたは "null値の置換"を検索することによっていくつかのアドバイスを得るかもしれません。

本当にこの必要がありますか?あなたはvarchar列のためにプライベートまたは読み取り専用のメンバーをマッピングし、それを制御するためのさまざまなプロパティを使用することができます。

private string _varcharField; 

public string VarcharField 
{ 
    get { return _varcharField; } 
} 

public int IntProperty 
{ 
    get { [parse and return _varcharField]; } 
    set { _varcharField = value.ToString(); } 
} 

この例では_varcharFieldはアクセス戦略を使用してNHibernateにマップされます。

+0

おかげで、これは私がそれをマッピングすることによって行うことができない場合の対処したいものです。 – nihique

関連する問題