我在我的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()函数。 –