【问题标题】:Private constructor on POCO entity preventing lazy loadingPOCO实体上的私有构造函数防止延迟加载
【发布时间】:2012-04-12 01:23:56
【问题描述】:

我有一个 POCO 实体,我在该实体上定义了一个自定义构造函数。我还实现了默认构造函数,以便当我从数据库请求副本时,Entity Framework 可以成功地对对象进行水合。

这似乎运作良好,但是当我将默认构造函数设置为私有(强制我的代码使用自定义版本)并从数据库请求实体时,我似乎无法导航相关实体它们都是空的。

这似乎是一个延迟加载问题,因此我可以更改我的存储库以急切加载我需要的相关对象,但我想知道是否有更好的方法可以从客户端代码中隐藏默认构造函数,同时允许实体框架延迟加载?

【问题讨论】:

    标签: entity-framework poco


    【解决方案1】:

    如果你定义了私有构造函数,你 violate requirements 用于创建负责延迟加载的 POCO 代理:

    自定义数据类必须有一个公共或受保护的构造函数 没有参数。

    所以对你来说最好的选择是使用受保护的构造函数或不使用延迟加载。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-16
      相关资源
      最近更新 更多