2

私はテーブルを持っています:Material(ID,Name,MAterialParentID)

SELECT  c1.ID,c1.Name as ParentName,c2.id,c2.Name
FROM    Material c1 Left JOIN Material c2
ON      c1.ID = c2.MaterialParentID

ID  ParentName  id  Name
1   Aluminium   2   Cavity
1   Aluminium   3   Copper
1   Aluminium   4   Flooring
2   Cavity     NULL NULL
3   Copper     NULL NULL
4   Flooring   NULL NULL
5   Glass      NULL NULL

上記を Liq to Entities を使用SQL Queryするように変換したいと思います。Linq Query

助けて感謝!

4

2 に答える 2

1

テーブルが読み取り専用の場合は、単にビューを作成してから、リバース エンジニアリングを使用するときに、ビューがインポートされていることを確認してください。

または、これをLINQで実行したい場合は、MSDNの例を次に示します

var innerJoinQuery =
    from cust in customers
    join dist in distributors on cust.City equals dist.City
    select new { CustomerName = cust.Name, DistributorName = dist.Name };

これはあなたがどのように見えるかです

var Material = from M in db.Materials
                       join M2 in db.Materials on M.ID equals M2.MaterialParentID
                       select new {ParentID = M.ID, ParentName = M.Name, M2.ID, M2.Name };

すべての列を一意にするためにParentIDを含めていることがわかるように、上記の投稿を編集しました

于 2013-07-17T13:13:29.970 に答える
0

この種の問題には、 linqpadが役に立ちます。

私は次のようなものを提案します:

var materials = (from m in context.Material 
                let moreMaterials = (from m2 in context.Material where m2.id == m.id select m2).FirstOrDefault()
                select m).ToList();

ただし、linqpad を使用して、クエリの要件に合わせてカスタマイズできます。

于 2013-07-17T13:29:10.510 に答える