【问题标题】:What is the proxy meaning in EntityFramework?EntityFramework 中的代理是什么意思?
【发布时间】:2011-11-03 14:24:36
【问题描述】:

我在我的项目中使用 EntityFramework 作为 ORM,我在使用这项技术时没有任何问题。我听说 EntityFramework 创建了一个代理。我想知道这个 ORM 创建了什么代理?它能做什么?而且,EF 何时创建它?换句话说,在ORM主题中经常使用的术语“代理”是什么意思。

【问题讨论】:

  • EF 并不总是创建代理。您可以关闭它,如果您急切加载或序列化实体(例如用于 WCF),您可能想要这样做。
  • 我接受了 Jonas 提供的内容,但我想听听更多专家的意见。

标签: c# .net entity-framework orm proxy


【解决方案1】:

ORM 世界中的代理是一种自动生成的类型,它继承自您的域对象类型。代理代表一个尚未从数据库中填充数据的实例,但只知道它自己的 ID。每当访问映射到数据库的属性时,代理子类将从数据库执行加载,因此加载对客户端代码是透明的。

代理通常是在您拥有两个延迟加载的实体之间的关系属性时创建的。例如。当您访问user.Address 属性时,真正返回的是一个地址代理对象。只有当您访问该对象的属性(例如user.Address.StreetName)时,才会加载正确的地址对象。

【讨论】:

    【解决方案2】:

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-12
    • 2017-06-11
    • 2018-03-05
    • 2023-03-27
    • 1970-01-01
    相关资源
    最近更新 更多