0

ItemID を主キーとする Items テーブルがあります

複合主キー StoreID と ItemID を持つ StoreItems テーブルがあります。ItemID は、Items テーブルへの外部キー参照を使用します。

このようなクエリを作成する必要があります (目標は、2 つのストアに存在するアイテムを選択することです)。

select * from Items i
inner join storeitems s1 on s1.ItemID = i.ItemID and s1.StoreID = myfirststoreid
inner join storeitems s2 on s2.ItemID = i.ItemID and s2.StoreID = mysecondstoreid

これを達成するために流暢なマッピングを行うにはどうすればよいですか?

4

1 に答える 1

0

テストされていません。最初にIDを選択してからアイテムを取得します。1 つのステートメントに組み合わせることが可能かもしれません。

var itemsIdsInBothStores =
    from i in session.Query<Item>()
    from s in i.Stores
    where s.Id == myfirststoreid || s.Id == mysecondstoreid
    group i by i.Id into g
    where g.Count() = 2
    select g.Key;

var itemsInBothStores = ´session.QueryOver<Item>().WhereRestrictionOn(i => i.Id).In(itemsIdsInBothStores.ToList());
于 2012-10-08T08:37:52.500 に答える