实体框架4和公共属性

时间:2010-05-05 21:51:28

标签: entity-framework poco

我正在开发一个项目,我正在使用Entity Framework 4作为我的ORM。我正在实施POCO课程。我在EF 4和POCO中看到的每个例子都使用公共设置器实现所有属性。这是我在EF 4中使用POCO课程的唯一方法吗?我的所有人都需要公开吗?

2 个答案:

答案 0 :(得分:1)

这取决于您如何使用您的实体。

“POCO”实体是一种谎言(在任何框架中)。真正的POCO可能具有私有或非虚拟状态,并且没有提供序列化,因此无法进行更改跟踪。在O / R映射中你唯一能用它们做的就是实现它们。

所以,当人们谈论映射“POCO”时,通常会有某种形式的妥协来允许变更跟踪。他们不是真正的“POCO”;他们是“所谓的POCO。”

妥协的一种方法是将所有持久状态公开。然后,您可以通过快照进行更改跟踪。

另一种妥协方式是使所有持久状态保护/虚拟。然后,您可以通过代理进行更改跟踪。这些房产没有必要公开。

EF不支持参数化构造函数(但是),因此构造函数注入(可能是“纯”POCO的最佳解决方案)现在不是一个选项。

答案 1 :(得分:0)