2009-12-19 68 views
2

实体框架跟踪变化是否在平原旧的C#对象的实体框架4.0的轨道变化?是否在波苏斯

如果是的话,应该我班做一些特别的(实现一个接口/更改属性的值时引发事件?)

另外,我怎么能得到国家的(修改/不变等) POCO?有没有办法了解房产的“旧”价值?

回答

0

我不知道你如何使用POCO的EF(没有代码发布的问题),但是如果你我们由EF创建的实体,你可以跟踪所做的更改。这MSDN article解释它。您还可以阅读此blog post甚至更​​多的细节。如果这些不帮助你,你可以更新的代码示例你的问题,告诉您如何使用EF以及如何使用POCO的吧。试图表现出你希望看到完成与POCO的使用模拟了代码示例什么的例子。

1

问题已更改为询问有关波苏斯即将到来的.NET 4.0的支持。正如最初所问,下面的答案是关于现有的.net 3.5支持。有关.net 4.0 EF POCO支持的信息,请参阅其他答案。


否。实体框架的当前版本不支持POCO。

为了通过EF是消耗品, 实体类必须:

  • 派生从EntityObject类或实现至少一个强制IPOCO 接口:IEntityWithChangeTracker。 如果实体参与 关系,它也必须实现 IEntityWithRelationships接口。 实现这些接口是不 硬,但会导致实体对象到 对EF组件的依赖关系, 其有时不期望

  • 提供组件,类和属性级别的属性来定义从CLR空间 映射到模型空间 (我们称这些OC映射属性)

  • 使用实体框架提供的关系类: 的EntityReference, EntityCollection和 RelationshipManager而不是CLR 个集合(列表,ICollection的)

source

到目前为止创建满足这些要求的类的最简单的方法是使用EF设计在Visual Studio中创建一个EDMX文件。该文件的一部分包含CSDL,它定义了数据的概念模型,换句话说就是 - 对象。 EDMX文件还定义了SSDL(存储/数据库)和MSL(SSDL和CSDL之间的映射)。这个CSDL将被用于生成将与EF一起工作的类。

POCO支持即将通过.net 4.0。

+0

的问题是关于EF 4.0,而不是当前的版本... – 2009-12-19 00:40:55

+1

哈哈。它本来不是。 Dam厚脸皮,就是在我回答之后改变问题。 – 2009-12-19 00:45:28