我有两个表-“客户”表和“黑名单”客户表。将客户列入黑名单时,我会将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/

10-10 08:16