我正在开发一个我正在使用Entity框架的应用程序。在表单加载方法中,我正在创建实体集合的对象。假设我们有一个Northwind
数据库,EF模型名为NorthWindEntities
。所以在我的Form加载方法中,我正在做这样的事情
using (NorthWindEntites nwdb = new NorthWindEntities)
现在如果我将鼠标悬停在nwdb对象上或添加此对象进行观察并执行nwdb.Customers
之类的操作,我可以看到所有客户实体。
我想知道如果nwdb model
尚未填充Customer
条记录,那么为什么在添加监视时使用nwdb.Customers
显示客户记录。是不是当我们创建NorthWindEntities
的nwdb对象时,它填充了所有的entites并且查询正在本地nwdb对象上执行?
如果是,那么这是惊人的,因为它们可能是数百万条记录。
答案 0 :(得分:0)
当您实际尝试对数据执行某些操作时,EF仅查询您的数据库 - 例如,为其分配.ToArray()
。检查值时,强制EF查询数据库。如果启用了延迟加载,则您的行为会有所不同。