1

これはおそらく、私が乗り越えられないように見える簡単なものです。

「アクセサリ」のリストを持つ「製品」クラスを作成しました。各「アクセサリ」は、ルックアップ テーブルによって参照される単なる別の製品です。

テーブルのセットアップ:

Product
-------
ProductID int
Name varchar(200)

AccessoryProduct
----------------
ID int
ParentProductID int
ChildProductID int

次のような方法で、このアクセサリのリストにアクセスできるようにしたいと考えています。

foreach(Product p in product.Accessories)
 string s = p.Name;

私が困惑している部分は、このルックアップの FluentNHibernate マッピングです。私の ProductMap クラス内には、次のマッピングがあります。

Id(x => x.ProductID);
Map(x => x.Name);
HasMany(x => x.Accessories)
 .Table("AccessoryProduct")
 .KeyColumn("ParentProductID")
 .Cascade.None()
 .Inverse()
 .LazyLoad();

これは現在、ルックアップ テーブル (AccessoryProduct) ではなく、Product テーブル内で "ParentProductID" を検索するクエリを作成しています。

ルックアップ テーブルの流暢なマッピングを可能にする、私が見逃している簡単な方法はありますか?

xml マッピングが関係している場合でも、ご支援いただければ幸いです。私は流暢な側面を理解できるはずです。

4

1 に答える 1

1

多対多の関係が必要です。

試す:

 HasManyToMany(x => x.Accessories)
 .Table("AccessoryProduct")
 .ParentKeyColumn("ParentProductID")
 .ChildKeyColumn("ChildProductID")
 .Cascade.None()
 .Inverse()
 .LazyLoad();
于 2009-09-29T18:05:44.370 に答える