POCO实体上的私有构造函数可防止延迟加载

时间:2012-03-28 12:42:46

标签: entity-framework poco

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

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

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

1 个答案:

答案 0 :(得分:12)

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

  

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

因此,最好的选择是使用受保护的构造函数或不使用延迟加载。