我有一个问题如何写一个lambda表达式,我让它在这样的mssql查询中工作:
SELECT KUNDNR
FROM halldb.dbo.KUND
wWHERE NOT EXISTS
(
SELECT KundID
FROM halldb.dbo.KundInfo
WHERE KUNDNR = CONVERT(Varchar(50), KundInfo.KundID)
)
ORDER BY KUNDNR
我正在尝试使用lambda表达式是这样的:
db.KUNDs.Select(x => x).Except(db.KundInfos.Select(x => x));
但是因为KUNDs和KundInfo是两种不同的对象,它们不会起作用......我可以这样:
db.KUNDs.Select(x => x.KUNDNR).Except(db.KundInfos.Select(x => x.KundID.ToString()));
但是当我真的想要获得一个包含KUNDs对象的列表时,那只会给我一个包含KUNDs.KUNDNR字符串的列表。
我该怎么做?
非常感谢帮助!
答案 0 :(得分:9)
db.KUNDs.Where(k => !db.KundInfos.Any(ki => k.KUNDNR == ki.KundID.ToString()))
.OrderBy(k => k.KUNDNR);