私はこのようにSQLを使用して階層データを平坦化します。私はビューを作成し、それをEF図に投げるだけです。しかし、これは "SQL Management StudioをLinqPadで置き換える"という考え方に合わない。私はLinq(とC#)でこれらをどのように記述しますか? (Linq to Entities/Entity Framework 4)Linq Acrobatics:hieraricalデータモデルをどのように平坦化するのですか?
テーブルAは製品を保持し、テーブルBは多くの種類のカテゴリを保持します。私は、ビューで単一のフィールドとして、カテゴリIDを選択します:
select A.*, B1.category as color, B2.category as size, B3.category as shape
from A left join B B1 on A.key = B1.key and B1.type = 1 -- Selects one B row
left join B B2 on A.key = B2.key and B2.type = 2
left join B B3 on A.key = B3.key and B3.type = 3
いっそのこと、あなたはSQLをアップ見て、LINQの同等物を見ることができますLINQのパターンの料理はありますか?私は既にC#で101 Linq examplesを見ました。
マイナーポイント - LINQ自体に明示的な外部結合はありませんが、Entity FrameworkでLINQを使用すると、外部結合につながるクエリ形式がたくさんあります。 var people = db.Person.Include(p => p.Address)は、IdアドレスがアタッチされているときにNULLを許可します - EFはこれを左外部ジョインとして解釈します。 –