.NET 4.5中是否弃用了ObjectContext?

And*_*ena 14 .net entity-framework

我已经使用ObjectContexts了很长时间了.现在,我已经安装了VS 2012,对于我吃惊的是实体数据模型不具有创建一个代码生成项目的选择ObjectContextsEntityObjects替代DbContextsPOCOs.

它现在被弃用了吗?我看到该ObjectContext课程仍然可用,但我无法将其用作EDMX的输出.

Paw*_*wel 19

不推荐使用ObjectContext.实际上DbContext只是ObjectContext上的一个层.DbContext API具有更好/更小的API,更易于使用.POCO实体也更清洁.这是改变代码生成的原因.如果您仍想使用ObjectContext和基于EntityObject的实体,请删除*.edmx文件下的*.tt文件.双击edmx文件以在设计器中打开它.单击设计器表面.在属性中将"代码生成策略"从"无"更改为"默认".

编辑

在VS2013附带的EF6设计器中,行为发生了一些变化(可供VS2012下载).如果您使用EF5,则有两个选项:'T4'和'LegacyObjectContext'.如果您使用的是EF6,则会禁用下拉列表.如果您想在EF6应用程序中使用ObjectContext,您需要为EF6使用实体对象生成器(请注意,此链接仅指向模板的一个版本,但实际上有几个版本取决于您需要的内容 - C#与VB. NET,WebSite非WebSite - 是列表).您可以在此处找到有关EF6工具更改的更多详细信息.

  • 谢谢."默认"代码生成策略没有使用任何TT,这是非常奇怪的,默认设计者的操作方法是使用DbContext TT.如果它总是使用TT并且默认模板已从ObjectContext更改为DbContext,那么对我来说会更清楚. (2认同)
  • 我为此提交了一个错误:http://entityframework.codeplex.com/workitem/686 (2认同)