首页 > 解决方案 > 如何将包含“不在”的 SQL 查询转换为 LINQ?

问题描述

SELECT distinct [Taskid] FROM[Dbimg].[dbo].[table1] where Taskid not in(从 [Dbimg].[dbo].[table1] 选择 Taskid,其中 ValidationFlag 为空)

请帮助在 linq c# 中转换上述 sql 查询。

标签: entity-frameworklinqsql-to-linq-conversion

解决方案


你可以试试下面的代码

db.table1.Where(x => !db.table1.Where(y => y.ValidationFlag == null).Select(z => z.Taskid).Contains(x.TaskId))
         .Select(x => x.TaskId).Distinct();

但在你的情况下,你也可以修改上面的 LINQ,因为你使用的是同一张表

db.table1.Where(y => y.ValidationFlag != null).Select(z => z.Taskid).Distinct();

推荐阅读