我在我的ASP.NET MVC應用程序中使用實體框架,並且在通過LINQ從SQL Server加載數據時遇到了一個問題。我的查詢在4秒內返回結果,但我需要花更少的時間,仍然尋找更好的解決方案。如何減少Entity Framework Linq查詢執行時間?
這裏是我的LINQ查詢:
var user =
context.CreateObjectSet<DAL.ProductMaster>()
.AsNoTracking()
.Include("Product1").AsNoTracking()
.Include("Product2").AsNoTracking()
.Include("Product3").AsNoTracking()
.Include("Product4").AsNoTracking()
.Include("Product5").AsNoTracking()
.Where(x => x.Id == request.Id)
).FirstOrDefault();
您是否嘗試過加載較少的實體? – Marco
檢查您是否在Id和OrganizationId上創建了索引。索引可以加速這種情況。 – Tony
您確定需要_ALL_這些其他表和數據,因爲這將產生相當多的JOIN操作,這可能會很昂貴。此外,你可以用'FirstOrDefault()'替換你的'Where()'子句來清理一些東西,你可能不需要爲每個Include()調用AsNoTracking()函數。 –