代理在EntityFramework中的含义是什么?

本文关键字:是什么 EntityFramework 代理 | 更新日期: 2023-09-27 18:06:33

我在我的项目中使用了EntityFramework作为ORM,我在使用这项技术方面没有任何问题。我听说EntityFramework创建了一个代理。我想知道这个ORM创建了什么代理?它是做什么的?那么,EF是什么时候创建的呢?换句话说,ORM主题中经常使用的术语"代理"的含义是什么?

代理在EntityFramework中的含义是什么?

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

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

参见使用代理类http://www.asp.net/entity-framework/tutorials/advanced-entity-framework-scenarios-for-an-mvc-web-application