日期:2014-05-20  浏览次数:20872 次

这个LINQ的筛选和排序的问题
我有两个表,结构和数据分别如下:
表A:
ID Name
2 张三
3 李四
4 王五
5 刘六

表B:
ID Age
7 20
5 30
10 25

我想要的结果是查出A表中ID值没有被表B中包含的所有项的值,两字段的值要要取。即这里我想得出A表中ID为2,3,4,Name为张三,李四,王五这这三项两个字段的结果。请问用LINQ怎么写?

------解决方案--------------------
C# code

var v =from u in db.TableA
       let z=
       (from n in db.TableB
        select n.ID)
       where !z.Contains(u.ID)
       select u;

------解决方案--------------------
探讨
引用:
from a in A
join b in B on a.ID equals b.ID into AB
from ab in AB.DefaultIfEmpty()
where a.ID != b.ID
select new
{
ID=a.ID,
Name=a.Name
};

我试了,但到"!=b.ID"这里就出错,说上下文不存在……