Aar*_*ide 10 c# entity-framework poco self-tracking-entities
我正试图加强实体框架,所以我不觉得自己处于黑暗时代.我尝试(并且迄今为止失败)从生成的代码中直觉了解可用代码生成项之间的本质区别.
似乎POCO将实体数据结构与将数据移入/移出数据存储区的ojbect隔离开来.
我不确定"自我跟踪实体"是什么.我猜测跟踪部分是指实现所谓的"工作单元"模式,但我不是正面的.更令人头疼的是,我想我想知道"自我追踪而不是什么?".

Lad*_*nka 13
POCO代表Plain Old C#(或CLR)对象.POCO独立于EF.它们只是遵循一些规则的类,但如果需要,您可以从自己的类型继承它们.它们也不包含任何依赖于持久性的数据.
目前这种类型最受欢迎,因为当前架构方法的趋势是拥有POCO和轻量级的所有东西.在某些情况下,使用POCO更复杂,但这是持久性无知架构的代价.
此生成器生成与EDMX的默认代码生成方法相同类型的实体.这些实体派生自EntityObject类,这使得它们完全依赖于Entity框架(我称之为重实体).这种依赖为它们提供了一些额外的功能或简化,但它使它们更难在分离的场景中使用,它们的使用导致上层与实体框架紧密耦合的架构或者在实现更好的分离时更加复杂.
这种类型的实体是第一个EF版本支持的唯一类型.甚至每个人都在使用POCO来实现更好的分离,这种类型对于EF来说是原生的,并且可能提供大多数功能.
此生成器还使您的实体可序列化(使用DataContractSerializer).
这是一种非常特殊的POCO发生器.使用EF时,我们有两种情况不同.附加的scenarion,其中EF跟踪对实体的更改以及您在EF范围之外进行更改的分离方案,并且一旦您将实体附加到EF,您必须告诉它您所做的更改.典型的分离方案是Web服务,您将实体传递给客户端,一旦客户端将它们传回,您必须以某种方式同步更改,以便EF知道它必须生成哪些SQL命令.STEs适用于这些独立的场景.它们是变更集模式的实现=它们跟踪它们的当前状态以及自自我跟踪开始以来所做的更改(如旧的DataSet所做的那样).
这是一个理论.在现实世界中,STEs有一些很大的缺点,仅适用于非常特殊的场景.
编辑:
还有一个生成器与Entity Framework 4.1一起安装.
该发生器通向与POCO发生器相同的实体.唯一的区别是使用API.POCO生成器使用ObjectContext API,而DbContext生成器使用带有DbContext API的POCO(仅适用于EF 4.1和2011年6月的CTP).这些API之间的区别是选择的问题.
| 归档时间: |
|
| 查看次数: |
1927 次 |
| 最近记录: |