0

似たような質問をしたことがありますが、あまり正確ではなかったので、もう一度やり直します。

あるエンティティが他のエンティティを含むモデルがあるとします。linq クエリで子エンティティのプロパティにアクセスする方法はありますか? 次に例を示します。

string category = "something";

IEnumerable<string> Items = _itemsRepository.GetItems()
                .Where(i => i.Product.Category == category)
                .OrderBy(i => i.ItemId);

"Where" 句で、子エンティティのプロパティ "Category" にアクセスしたい (このコードのチャンクは機能しません)。テーブル「Items」には、テーブル「Products」の外部キー「ProductId」が含まれています。
ここでは、製品のカテゴリが「something」に等しいアイテムを選択したいと思います。どうすればそれができますか?

前もって感謝します!

4

3 に答える 3

1
IEnumerable<Item> Items = _itemsRepository.GetItems()
                .Where(i => category == null || 
                           (i.Product != null && 
                            i.Product.Category == category))
                .OrderBy(i => i.ItemId);
于 2012-12-28T15:48:05.890 に答える
0

select句がありません

    IEnumerable<string> Items = _itemsRepository.GetItems()
            .Where(i => i.Product.Category == category)
            .OrderBy(i => i.ItemId)
            .Select(i => i.Name); //<- or whatever string property you expect to get out

そうでなければ、あなたのエンティティが何と呼ばれているかを持っているべきではありIEnumerable<string>ません。IEnumerable<Item>

于 2012-12-27T14:30:56.567 に答える