1

次のようなクラス 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 プロパティにマップするにはどうすればよいですか?

4

1 に答える 1

0

プロパティの「式」を構成すると役立つと思います。このリンクを参照してください。

于 2012-12-17T17:44:39.290 に答える