我继承了一个 C# / ASP.NET MVC / Entity Framework 项目,但速度有些慢。数据库中的数据不多,但调用.Include()
导致速度变慢。
然而,我发现了一件很奇怪的事情。我有一个只有数字(5 列)的 2k 行表。我正在搜索的列上有索引。
做的时候:
_entities.MyTable.Where(x=> x.Id1 == 4 && x.Id2 == 5).First()
在我的开发机器上需要 1800 毫秒。
但是,当我这样做时:
_entities.MyTable.Where("it.Id1 = 4 and it.Id2 = 5").First()
大约需要 10 毫秒。
这是怎么回事?我不明白为什么 LINQ 表达式会这么慢。