如何改进我的LINQ查询以获得更好的性能。写这个的更好方法是什么:
result = (from cd in dataContext.vRetailerWeeks
where cd.MasterTrackingGroupID == masterTrackingGroupId
&& cd.RetailerWeek <= (from cd1 in dataContext.vCalendarDates
where
cd1.MasterTrackingGroupID == masterTrackingGroupId &&
cd1.CalendarDate == retailerWeekDateTime
select cd1.RetailerWeek).FirstOrDefault()
orderby cd.RetailerWeek descending
select cd.RetailerWeek).Take(weekNo).ToList();
答案 0 :(得分:3)
好吧,问题是你是否需要改进你的linq查询或数据库中的索引。
开始生成SQL的最佳方式(使用SQL事件探查器,或从datacontext中记录)。
如果您对生成的SQL感到满意,则无需进一步更改linq查询,它已完成其工作。因此,在Management Studio中尝试此SQL并检查查询计划。从那里,您可以优化索引。
如果您不满意,请继续使用linq查询。