实体框架延迟加载和DTO模式

时间:2011-07-22 09:24:15

标签: entity-framework entity-framework-4.1 lazy-loading dto

假设我们正在使用DTO对象在服务层和Presentation(MVC)层之间传输数据。在这种情况下,表示层只能访问DTO对象。因此,我们不能在Entity框架中使用延迟加载功能。 我在这儿吗?请提出你的建议。

(我的DTO不是EF中的实体,我已经实现了存储库和工作单元模式)

2 个答案:

答案 0 :(得分:2)

您可以使用延迟加载,但仅在使用附加实体时才在服务端使用。

答案 1 :(得分:1)

首先定义你的定义:你的DTO对象也是你在EF 4.1中的实体吗?他们(也)是你的模型,它们是否包含业务逻辑?

如果是这样,我建议关闭代理创建(myDbContext.Configuration.ProxyCreationEnabled = false;)因为它们不能轻易序列化。然后使用dataAccess的存储库,在CRUD方法中,指定正确的实体状态,如:http://blogs.msdn.com/b/adonet/archive/2011/01/29/using-dbcontext-in-ef-feature-ctp5-part-4-add-attach-and-entity-states.aspx