-2

我有两个表具有一对(父)对多(详细信息)关系。

我想在 Linq 中编写这个查询(用 SQL 编写)。正如你看到的; 它是子查询的内连接,其中包含以下内容:

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 回答