【发布时间】:2018-03-11 14:40:40
【问题描述】:
我知道这可能是一个简单的问题,但我花了好几个小时试图弄清楚但没有运气!
我想在Entity Framework中实现如下SQL命令:
SELECT * FROM Table1
WHERE RowID NOT IN (
SELECT SomeID FROM Table2 Where SomeID is not null)
我尝试了以下(Asp.Net C#):
var SomeIDs = db.Table2.Where(n => n.SomeID != null).Select(x => x.SomeID);
var query = (from a in db.Table1
where !(SomeIDs.Contains(a.RowID))
select a;
它在小型数据库中工作正常,但在生产数据库中它需要永远然后超时!
感谢任何帮助!
【问题讨论】:
-
为此生成了什么 SQL?
-
让我猜猜,在生产中
SomeIDs包含更多项目。 -
LINQ 查询应该生成完全相同的
NOT IN或等效的NOT EXISTSSQL 查询。你能显示query.ToString()的输出吗?
标签: c# asp.net sql-server entity-framework