![]() |
1
6
在EF4中,如果使用代码生成或代理,则默认情况下会执行延迟加载。”纯“poco(不要与所谓的poco代理混淆)无法执行延迟加载,除非您为其编写代码。更多细节如下 in this post . 在EF1中,没有延迟加载,因此必须使用显式加载、预加载或投影。
显式加载意味着调用
预加载会导致属性与实体本身一起加载。这样就避免了第二个数据库查询。 Projection 使ef以优化的方式仅为所需的属性生成SQL。 尽管EF4中默认启用了延迟加载,但在任何ORM中,它都是相对低效的(会导致许多DB查询)。您可能仍然希望使用投影或预加载。 |
![]() |
2
0
在使用实体框架时,一般的做法是检查是否加载了子框架……如果没有,则加载它。
直接来自: |
![]() |
3
0
在Entity Framework版本1(aka 3.5)中,只有三种情况下,EF可能从相关表中加载数据:
上面描述的所有三个场景都要求显式指定要加载相关表数据。据我所知,如果没有你的请求,EF v1永远不会在“幕后”进行(这可以被视为一个积极的,但它不是其他现代ORM的工作方式,他们在版本2-也就是版本4.0中更改了它)。 |
![]() |
Drago · Linq通过比较Id和具有Id的对象列表来查询获取列表 2 年前 |
![]() |
Niyazi Babayev · 如何在表达式中动态应用表达式? 2 年前 |
![]() |
Murat Güzel · EF存储库模式错误{'Id'}已被跟踪 3 年前 |
![]() |
dotnetdevcsharp · 减少基于数据类型获取设置的方法数量 3 年前 |
![]() |
saravanan049 · 在实体框架中回滚Azure SQL数据库 3 年前 |