-2

1 (親) 対多 (詳細) の関係を持つ 2 つのテーブルがあります。

このクエリ (SQL で記述) を Linq で記述したいと思います。ご覧のとおり。サブクエリの内部結合であり、Except が含まれます。

select pa.* from dbo.Parent pa
inner join
(
      select    p.ID  from dbo.Parent p
          except
               (
                  select  d.ID from dbo.Details d  where (d.ParentID = 371)
               )
) p
on pa.ID = p.ID
where pa.ID <> 371
4

2 に答える 2

0
var result = Parent.Where(p=>Details.Where(d=>d.ParentID!=371)
                                    .Select(d=>d.ID)
                                    .Contains(p.ID));
于 2013-08-21T18:48:42.110 に答える
0

king king はおそらく正しい道を進んでいますが、これは結合を使用したものです。

parent.Join(Details , 
        parent => parent.Id,
        detail => detail.Id,
        (parent, detail) => new { P = parent, D = detail)
        .Where(e => e.D.ParentId != 371)
        .Select(e => e.P);
于 2013-08-21T18:56:07.947 に答える