我有两个表-“客户”表和“黑名单”客户表。将客户列入黑名单时,我会将customerid作为外键添加到“黑名单”表中。
我想要的是获取不在BlackList表中的CusId和Name。
我如何编码此 Entity Framework C#?
Customer
---------
(CusId,Name,Telephone,Email)
Blacklist
---------
(CusId)
最佳答案
您想要的是以下内容:
db.Customers
.Where(c => !db.Blacklists
.Select(b => b.CusId)
.Contains(c.CusId)
);
EF乐于将其转换为运行良好的子查询。
此模式适用于静态列表(创建
IN(a, b, c)
表达式)以及其他表。您可以使用它来检查是否在列表中。如果要测试它并查看它生成的SQL,我强烈建议使用LINQPad(它是免费的)。这就是我一直在测试LINQ中的小想法的方法。
关于c# - 选择在 Entity Framework 的另一个表中不存在的记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21766856/