2011-11-09 7 views
2

どのようにしてエンティティに複数回表示され、コンポーネントの列の1つは共有されますか?Fluent NHibernate列を共有するコンポーネント

mapping.Component(x => x.Price1, m => 
    { 
     m.Map(x => x.Amount).Column("OfferPrice"); 
     m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); 
    }); 

    mapping.Component(x => x.Price2, m => 
    { 
     m.Map(x => x.Amount).Column("OfferPrice2"); 
     m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); 
    }); 

このエラーは挿入中に、まるで53の53などの列を取得できないと言っているだけです。マッピングに問題がある場合、一般的なエラーです。作業をうまく選択しますが、挿入や更新はできません。

答えて

1

あなたが同じ列にマップすることができますが、そのうちの1読み取り専用

mapping.Component(x => x.Price1, m => 
{ 
    m.Map(x => x.Amount).Column("OfferPrice"); 
    m.Map(x => x.Group).Column("CurrencyConverterRateGroupID"); 
}); 

mapping.Component(x => x.Price2, m => 
{ 
    m.Map(x => x.Amount).Column("OfferPrice2"); 
    m.Map(x => x.Group).Column("CurrencyConverterRateGroupID").Readonly(); 
}); 
2

マッピングで同じ列を2回マッピングすることはできません。コンポーネントの外にCurrencyConverterRateGroupIDをプルする必要があります。

+0

あなたはそれを行うにはカスタムフィルタを作成する方法か何かがないことを確認をする必要があるだろうか? – BradLaney

関連する問題