在创建实体集合对象时,Entity框架是否会填充所有记录?

时间:2016-03-15 17:08:26

标签: .net database entity-framework

我正在开发一个我正在使用Entity框架的应用程序。在表单加载方法中,我正在创建实体集合的对象。假设我们有一个Northwind数据库,EF模型名为NorthWindEntities。所以在我的Form加载方法中,我正在做这样的事情

using (NorthWindEntites nwdb = new NorthWindEntities)

现在如果我将鼠标悬停在nwdb对象上或添加此对象进行观察并执行nwdb.Customers之类的操作,我可以看到所有客户实体。

我想知道如果nwdb model尚未填充Customer条记录,那么为什么在添加监视时使用nwdb.Customers显示客户记录。是不是当我们创建NorthWindEntities的nwdb对象时,它填充了所有的entites并且查询正在本地nwdb对象上执行?

如果是,那么这是惊人的,因为它们可能是数百万条记录。

1 个答案:

答案 0 :(得分:0)

当您实际尝试对数据执行某些操作时,EF仅查询您的数据库 - 例如,为其分配.ToArray()。检查值时,强制EF查询数据库。如果启用了延迟加载,则您的行为会有所不同。