【发布时间】:2015-08-22 22:35:30
【问题描述】:
我在实体框架中有一个简单的类如下:
public class Merchandising
{
public int Id { get; set; }
public int Index { get; set; }
public int CategoryId { get; set; }
public int? CardId { get; set; }
}
在数据库中,它大约有 1000 行,直接查询不到一秒,但是当我执行这条语句时,它需要 55 秒才能运行——我觉得这很奇怪。任何人都可以对此有所了解吗?
var mm = a.Merchandisings.ToList();
var m = mm.Where(f => f.CategoryId == catId).ToList();
catId 是一个整数值,mm 需要几分之一秒的时间来执行。 mm 返回大约 1000 行,m 返回 40 行。 M 执行大约需要 55 秒。
我假设虽然CategoryId 和CardId 都链接到其他类(并且是大数据对象),但由于没有延迟加载,因此不会加载数据。
我真的不明白为什么 m 需要这么长时间才能执行,我想这与缺乏公平框架知识有关。有人可以帮忙吗?
【问题讨论】:
-
看看分析器,调查发送到数据库的实际查询
标签: c# linq entity-framework linq-to-entities