[英]Entity Framework, why is this sql being generated?
當我查看由EF生成的SQL查詢時,我看到了
SELECT [extent1].ID as ID,
[extent1].Name as Name
From(
Select myview.ID as ID,
myview.Name as Name
From myview) AS [extent1]
Where([Extent1].ID = @p_linq_0)
為什么外部選擇發生在內部選擇上? 我有一個非常大的表,可以通過外部查詢輕松地獲得記錄,但是整個查詢合起來會超時。
我的Linq查詢
var result = from i in invitationEntity.Invitations
.Where(a=>a.id == inviationId)
select i;
我正在使用SQL 2012&EF5&Linq。
有沒有辦法“強制”更簡單的查詢?
因為您將在最后一次與LINQ方法一起調用“ SELECT”。
var result = from i in invitationEntity.Invitations
.Where(a=>a.id == inviationId)
select i;
最后一行選擇i是無用的,但是EF並不知道它是否有用,您可以簡單地避免它。
var result = invitationEntity.Invitations
.Where(a=>a.id == inviationId);
您仍然可以枚舉結果並獲得所有信息。
好的,對不起,我忘了添加,您不必使用“ from”,只需使用.Where(expression)
如果您想使用LINQ關鍵字,則可以通過這種方式使用它,
var result = from i in invitationEntity.Invitations
where i.id == invitationId
select i;
您不能混合使用LINQ關鍵字和LINQ擴展方法。
我會這樣說
var result = from i in invitationEntity.Invitations
.Where(a=>a.id == inviationId)
select i;
這個
a=>a.id == inviationId
從a=>
生成
Select myview.ID as ID,
myview.Name as Name
From myview
所以a
是[extent1]
您應該使用“標准” where子句
from i in invitationEntity.Invitations
where i.id == inviationId
select i;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.