10

我刚下载EntityFramework.dll v4.3。我发现了许多比较DbContext与..的问题ObjectContext。但其中大部分来自 2010 年或 2011 年初。

我想阅读更多关于这个主题的内容。具体来说,有没有DbContext我可以拿到的书?我也想知道,截至今天,DbContext与它的哥哥相比,它的局限性是什么ObjectContext

我意识到它DbContext更紧凑,因为它暴露了更少的属性。这表明我应该从ObjectContext. 但是,如果我进行此迁移,我会放弃任何功能吗?例如,我读过它DbContext没有 STE(自我跟踪实体)功能。这仍然成立吗?是否值得关注?

4

1 回答 1

16

我想阅读更多关于这个主题的内容。具体来说,有没有DbContext我可以拿到的书?

你的问题一开始并不顺利,因为一个谷歌查询会给你一个答案。有一本关于 DbContext本身的好书——它不包含任何关于 Code First 方法的内容,但我想这真的不是你问题的重点。

我发现了许多比较DbContext与 ..的问题ObjectContext。但其中大部分来自 2010 年或 2011 年初。

如果只是想用+EDMX代替ObjectContext+ DbContextEDMX,对比还是一样的。DbContext是一个包装器ObjectContext,除了与 Code First 和 Migrations 相关的那些特性外,它的特性集并没有增长。

我意识到它DbContext更紧凑,因为它暴露了更少的属性。这表明我应该从 ObjectContext.

是的,它更紧凑,并且简化了与上下文相关的最常见任务。DbContext对于更复杂的任务,您仍然可以ObjectContext通过IObjectContextAdapter.

但是,如果我进行此迁移,我会放弃任何功能吗?例如,我读过它DbContext没有 STE(自我跟踪实体)功能。这仍然成立吗?是否值得关注?

STE 是为 STE 创建的ObjectContext,我不认为它被移植到DbContext,但您可以尝试自己实现此功能。

STEs 只是一个带有解决某些问题的想法的模板。它看起来是一个很好的理论解决方案,但它并没有被开发人员社区很好地接受,因为该解决方案对于现实世界的场景来说并不是很好。这也是为什么正在开发其他更重要的功能而不是改进或移植模板的原因。

于 2012-05-07T09:59:41.457 回答