实体框架跟踪变化是否在平原旧的C#对象的实体框架4.0的轨道变化?是否在波苏斯
如果是的话,应该我班做一些特别的(实现一个接口/更改属性的值时引发事件?)
另外,我怎么能得到国家的(修改/不变等) POCO?有没有办法了解房产的“旧”价值?
实体框架跟踪变化是否在平原旧的C#对象的实体框架4.0的轨道变化?是否在波苏斯
如果是的话,应该我班做一些特别的(实现一个接口/更改属性的值时引发事件?)
另外,我怎么能得到国家的(修改/不变等) POCO?有没有办法了解房产的“旧”价值?
我通过快速谷歌搜索发现POCO in the Entity Framework: Part 1 - The Experience。见Part 3 – Change Tracking with POCO。
有两种类型的变化的跟踪 可能性与POCO:基于快照 更改跟踪和通知 基于更改跟踪与代理。在 这篇文章中,我想进一步钻取 这两个选项,并涵盖了 这两种优点和缺点,以及 使用这两种方法的含义。
我不知道你如何使用POCO的EF(没有代码发布的问题),但是如果你我们由EF创建的实体,你可以跟踪所做的更改。这MSDN article解释它。您还可以阅读此blog post甚至更多的细节。如果这些不帮助你,你可以更新的代码示例你的问题,告诉您如何使用EF以及如何使用POCO的吧。试图表现出你希望看到完成与POCO的使用模拟了代码示例什么的例子。
问题已更改为询问有关波苏斯即将到来的.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的)
到目前为止创建满足这些要求的类的最简单的方法是使用EF设计在Visual Studio中创建一个EDMX文件。该文件的一部分包含CSDL,它定义了数据的概念模型,换句话说就是 - 对象。 EDMX文件还定义了SSDL(存储/数据库)和MSL(SSDL和CSDL之间的映射)。这个CSDL将被用于生成将与EF一起工作的类。
POCO支持即将通过.net 4.0。
如果您使用动态生成的代理(如果您的类满足要求,这是POCO的默认行为),则会跟踪实体上的更改。
的问题是关于EF 4.0,而不是当前的版本... – 2009-12-19 00:40:55
哈哈。它本来不是。 Dam厚脸皮,就是在我回答之后改变问题。 – 2009-12-19 00:45:28