2011-05-06 4 views
2

私は変更できない古いデータベースを持っており、現在NHibernateを使用しています。
問題は、複数の列を持つテーブルがあり、それらを単一の配列にマップすることです。複数のカラムをNHibernateの配列にマッピングする

ID
Price1
Price2
Price3
Price4
[...]

クラスは、次のことになります。

public class MyClass { 
    public int Id { get; set; } 
    public decimal[] Prices { get; set; } 
} 

が、それは可能ですか?
データを読み取るだけで、そのプロパティを設定/保存する必要はありません。
多くのマッピングを試しましたが、回答が見つかりませんでした。

ありがとうございます!

答えて

3

も、これが唯一の回避策で、かなり汚れているが、私はそれがうまくいくかもしれないと思う:

public class MyClass { 
    public virtual int Id { get; set; } 
    protected virtual decimal Price1 { get; set; } 
    protected virtual decimal Price2 { get; set; } 
    protected virtual decimal Price3 { get; set; } 
//... 
    public decimal[] Prices 
    { get 
    { 
     return new decimal[] {Price1, Price2, Price3}; 
    } 
    } 
} 

しかし、私は知らないNHのマッピング能力を使用して、より洗練された答えがあるかもしれませんの。

+0

私はこれを "かなり汚い"と呼んでいません。かなり標準的なラッパープロパティです。 – MusiGenesis

+0

こんにちは、これは私の最初の解決策でしたが、残念ながら列が変わる可能性があり、マッピングXMLと好ましくはコードを変更したくないので、適切ではありません。とにかくありがとう! – StockBreak

+0

列のリストを受け取るカスタムユーザータイプを使用するとどうなりますか?実装するのはかなり難しいかもしれませんが、おそらく私のニーズに合っているはずです。とにかく、これを行う "簡単な"方法はないようです... – StockBreak

関連する問題