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

Entity framework POCO实体上防止延迟加载的私有构造函数,entity-framework,poco,Entity Framework,Poco,我有一个POCO实体,我在它上面定义了一个自定义构造函数。我还实现了默认构造函数,这样,当我从数据库请求副本时,Entity Framework可以成功地水合对象 这似乎工作得很好,但当我将默认构造函数设置为private(强制我的代码使用自定义版本)并从数据库请求实体时,我似乎无法浏览相关实体,因为它们都为null 这似乎是一个延迟加载问题,因此我可以将我的存储库更改为急切加载我需要的相关对象,但我想知道是否有更好的方法在允许实体框架延迟加载的同时从客户端代码中隐藏默认构造函数?如果您定义了私

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

这似乎工作得很好,但当我将默认构造函数设置为private(强制我的代码使用自定义版本)并从数据库请求实体时,我似乎无法浏览相关实体,因为它们都为null


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

如果您定义了私有构造函数,那么您可以创建负责延迟加载的POCO代理装载:

自定义数据类必须具有 没有参数

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