【问题标题】:Entity Framework Lazy Loading and DTO pattern实体框架延迟加载和 DTO 模式
【发布时间】:2011-10-10 21:48:35
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 那么,实体框架的DTO模式好不好?因为我们需要使用'Include'方法来加载导航属性?
    • 如果您事先知道将数据传递给 DTO,则应避免延迟加载,因为它会导致许多不必要的数据库往返。
    【解决方案2】:

    首先正确定义您的 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

    【讨论】:

    • 我的 DTO 不是 EF 中的实体,我已经实现了存储库和工作单元模式
    猜你喜欢
    • 1970-01-01
    • 2012-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-14
    • 1970-01-01
    相关资源
    最近更新 更多