实体框架4.1 Poco类避免多个数据包往返

时间:2012-07-21 14:40:09

标签: entity-framework entity-framework-4.1

我有一个使用EF 4.1和Poco Classes的ASP.NET MVC应用程序。

当我得到多个实体时:

var users = db.Users.Where(u=>u.IsActive).ToList();
var transactions = db.Transactions.Where(t=>t.IsActive).ToList();
var customers = db.Customers.Where(c=>c.IsActive).ToList();

在这种情况下,数据库被击中3次?如果有的话,有没有办法强制EF 4.1只在一次往返中进行这些调用?

我问这个是因为我有一个功能必须得到14个实体并更新其他17.所以很高兴知道这是如何在幕后工作。

1 个答案:

答案 0 :(得分:0)

在这种情况下,由于没有关系并且涉及多个表,因此在使用EF 4.1时必须进行多次跳闸。这是因为无法在这些表之间提供某种JOIN来合并多个SQL语句。虽然必须进行多次旅行,但是通过在DbSets之间切换同时保持相同的上下文(如果可能),在一个连接下进行每次旅行仍然会相对轻松。