【发布时间】:2011-10-10 21:48:35
【问题描述】:
假设我们使用 DTO 对象在服务层和表示 (MVC) 层之间传输数据。在这种情况下,表示层只能访问 DTO 对象。因此我们不能在实体框架中使用延迟加载功能。 我在这里吗?请提出您的建议。
(我的 DTO 不是 EF 中的实体,我已经实现了存储库和工作单元模式)
【问题讨论】:
标签: entity-framework entity-framework-4.1 lazy-loading dto
假设我们使用 DTO 对象在服务层和表示 (MVC) 层之间传输数据。在这种情况下,表示层只能访问 DTO 对象。因此我们不能在实体框架中使用延迟加载功能。 我在这里吗?请提出您的建议。
(我的 DTO 不是 EF 中的实体,我已经实现了存储库和工作单元模式)
【问题讨论】:
标签: entity-framework entity-framework-4.1 lazy-loading dto
您可以使用延迟加载,但只能在使用附加实体时在服务端使用。
【讨论】:
首先正确定义您的 DTO 对象是否也是 EF 4.1 中的实体?它们(也是)你的模型吗?它们是否包含业务逻辑?
如果是这样,我建议关闭代理创建 (myDbContext.Configuration.ProxyCreationEnabled = false;),因为它们不能轻易序列化。然后使用数据访问存储库,在 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
【讨论】: