2

我有一个使用 EF 4.1 和 Poco 类的 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 在 1 次往返中进行这些调用?

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

4

1 回答 1

0

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

于 2012-07-30T00:02:20.830 回答