次のようなクラス Foo があるとします。
public class Foo
{
public virtual int FooId { get; protected internal set; }
public virtual List<Bar> bars { get; protected internal set;}
public virtual Bar DefaultBar { get; set; }
}
Foo には Bar のコレクションがあり、Bar タイプの DefaultBar プロパティがあります。
バーのコレクションは、次のフィールドを持つテーブルに格納されます
FooBarID int PK
FooID int FK
BarID int FK
Default bit
一致する FooID 値のコレクションの 1 行のみが Default=1 を持つことができます。このお粗末な設計 (レガシー システムで必要) を無視すると、
私のマップには次のものがあります。
<class name="Bar">
<id name="BarID" generator="native" unsaved-value="0" />
</class>
<class name="Foo">
<id name="FooID" generator="native" unsaved-value="0" />
<set name="Bars"
table="FooBars">
<key column="FooId" />
<many-to-many class="Bar" column="BarId" />
</set>
</class>
Default=1 の単一の一致する行で BarID によって示される値を Foo インスタンスの DefaultBar プロパティにマップするにはどうすればよいですか?