我正在使用EF 4.0和POCO开发一个小应用程序.
在测试我的应用程序时,我开始关注数据访问层的性能.所以我在尝试检索记录时解雇了SQL Profiler:
ctx.Orders.Include("OrderItems").FirstOrDefault<Order>(c => c.OrderID == id);
Run Code Online (Sandbox Code Playgroud)
EF发出一条SQL语句,该语句将从服务器上的Orders表中检索所有记录,并因此返回DAL,此时L2E将选择满足条件的一个并返回它.
可以改变这种行为.
谢谢!
禅
in Entity Framework, what is the difference in doing:
db.Table.Where(filter).FirstOrDefault()
Run Code Online (Sandbox Code Playgroud)
or
db.Table.FirstOrDefault(filter)
Run Code Online (Sandbox Code Playgroud)
我想第一个先应用过滤器,然后取第一个记录.第二个从表中获取所有记录,然后应用过滤器,效率更低.如果这是正确的或两者都相同,你能否确认我?
最好的祝福