【发布时间】:2015-07-06 23:11:06
【问题描述】:
我有一个这样的 linq 语句:
this.DataContext.TableName.Where(r => r.Field =="REQUEST" || r.Field== "UPDATE")
转换成sql后的语句如下:
WHERE ([Extent1].[Field] IN (N'REQUEST',N'UPDATE'))
而不是:
WHERE Field = 'REQUEST' or Field = 'UPDATE'
底部示例的运行速度是顶部示例的两倍。有没有人能指出我正确的方向,以使转换后的 SQL 看起来像下面的示例。
我正在使用 C# ASP.Net MVC 5、EF6,但无论我尝试什么都给出相同的结果并使用 IN 语句。
【问题讨论】:
-
嗨,您能否发布对两个查询的执行计划的评估,以比较它们是否以不同的方式运行。我认为两者都将以相同的方式运行,但请检查执行计划并发布图像。
-
你试过
(r.Field == "REQUEST") || (r.Field == "UPDATE")吗?另外,我倾向于同意@Juan。
标签: c# linq entity-framework