Bra*_*don 1 .net entity-framework
在什么实例中,Entity Framework会在您使用它们时自动加载子行和其他相关行?有时这似乎是在属性访问器上自动完成的,有时你必须明确地这样做.
例如,如果我有一个名为Car的表和一个名为Wheel的表,并且每个车行有4个轮子行,当我访问myCar.Wheel时,EF会自动加载Wheel行,或者是调用myCar的一般做法.Wheel.Load()第一个?
Cra*_*ntz 6
在EF 4中,如果您使用代码生成或代理,则默认情况下会进行延迟加载."纯粹的"POCO(不要与所谓的POCO代理混淆)不能进行延迟加载,除非你编写代码.更多细节在这篇文章中.
在EF 1中,没有延迟加载,因此您必须使用显式加载,预先加载或投影.
显式加载意味着调用Load().你通常IsLoaded在打电话前测试Load().
Load()
IsLoaded
预先加载会导致属性与实体本身一起加载.这避免了第二次数据库查询.
投影使EF以优化的方式仅为您需要的属性生成SQL.
虽然在EF 4中默认启用延迟加载,但在任何ORM中它都是相对低效的(导致许多数据库查询).您可能仍希望使用投影或预先加载.
归档时间:
16 年,1 月 前
查看次数:
2145 次
最近记录: