Gie*_*ius 5 c# t-sql entity-framework entity-framework-4
我注意到了奇怪的行为.我有商家和订单表,做两个选择一个,其他,选择非常简单(从商家选择*,从订单中选择*).
这是sql profiler跟踪,当我选择第一个商家时,然后订单:

注意,订单选择正在服用75秒(这是一个~80.000记录,在一台非常体面的机器8gb ram,ssd,i7).
现在,如果我更改顺序并选择第一个订单,那么商家:

在分析器中,命令查询执行时间下降到2.5秒,但在应用程序中它与第一种情况大致相同(我猜是因为EF内部尝试将订单绑定到商家,因为它们之间存在外键).
所以问题是为什么分析器看到不同的时间以及EF在第二种情况下做了多长时间,可能是某些配置错误了?
更新:我已经开始使用干净的EF模型本地化问题,它可以正常工作.我正在使用EF T4模板来生成上下文和实体类,因此它可能已经过时并导致问题,将会知道是否会找到具体的东西 - 我认为这与修复集合有某种关系,所以看起来像SQL分析器有误导性 - 我猜查询执行正常,只是等待EF完成阅读结果或smth(我的意思是EF可能会在阅读结果时做一些有用的事情).
using (var myEntities = new myEntities())
{
var merchants = myEntities.Merchants.ToList();
var orders = myEntities.Orders.ToList();
}
Run Code Online (Sandbox Code Playgroud)