linq到不在语句中的实体
我是新来的linq实体。我试图做一个不在声明,当我运行它时,我没有得到任何回报。但是,如果我运行SQL等价物,我将返回数据 我试图复制的SQL语句是linq到不在语句中的实体,linq,entity-framework,Linq,Entity Framework,我是新来的linq实体。我试图做一个不在声明,当我运行它时,我没有得到任何回报。但是,如果我运行SQL等价物,我将返回数据 我试图复制的SQL语句是 SELECT * FROM [SCRAPREASON] WHERE [CODE] NOT IN (SELECT [CODE] FROM [QUALITYALERTRULE]) ORDER BY [CODE] 我现在的关键是 var DefectCode = PumaOEEEntities.ScrapReasons .Where(x
SELECT * FROM [SCRAPREASON] WHERE [CODE] NOT IN (SELECT [CODE] FROM [QUALITYALERTRULE]) ORDER BY [CODE]
我现在的关键是
var DefectCode = PumaOEEEntities.ScrapReasons
.Where(x => !PumaOEEEntities.QualityAlertRules.Any(y => y.Code != x.Code))
.Select(x => new { GroupID = x.Code}).ToList();
有人知道我做错了什么吗?你应该比较代码是否相等(
=
而不是!=
):
生成的SQL将如下所示:
SELECT
[Extent1].[Code] AS [Code],
// Other columns
FROM [dbo].[ScrapReasons] AS [Extent1]
WHERE NOT EXISTS (SELECT
1 AS [C1]
FROM [dbo].[QualityAlertRules] AS [Extent2]
WHERE [Extent2].[Code] = [Extent1].[Code]
)
ORDER BY [Extent1].[Code] ASC
你可以试试
,除了这样的
var DefectCode = PumaOEEEntities.ScrapReasons.Select(x=>x.Code)
.Except(PumaOEEEntities.QualityAlertRules.Select(y=>y.Code)).ToList();
添加order by,它看起来很完美。这将只返回code
列我想OP也在尝试获取code
的列表。我遗漏了什么吗?您遗漏了OP正在尝试复制sql查询,该查询具有SELECT*FROM
var DefectCode = PumaOEEEntities.ScrapReasons.Select(x=>x.Code)
.Except(PumaOEEEntities.QualityAlertRules.Select(y=>y.Code)).ToList();