Asp.net mvc MVC EDMX Codebehind使用的是ObjectContext与DBContext
我是EF的新手。我的模型有一个单独的项目。我已经安装了EF 4.3.1.0。我看到上下文的基类是ObjectContext,而不是DbContext。当我在前端项目中构建控制器时,这会成为一个问题,在编辑操作中,它会调用Asp.net mvc MVC EDMX Codebehind使用的是ObjectContext与DBContext,asp.net-mvc,entity-framework,Asp.net Mvc,Entity Framework,我是EF的新手。我的模型有一个单独的项目。我已经安装了EF 4.3.1.0。我看到上下文的基类是ObjectContext,而不是DbContext。当我在前端项目中构建控制器时,这会成为一个问题,在编辑操作中,它会调用 context.Entry(status).State = EntityState.Modified; 但入境情况不详。我发现这个条目是DbContext的新条目 如何让生成的代码生成正确的内容 这是DB First项目必须在Visual Studio中将应用于EDMX模型
context.Entry(status).State = EntityState.Modified;
但入境情况不详。我发现这个条目是DbContext的新条目
如何让生成的代码生成正确的内容
这是DB First项目必须在Visual Studio中将应用于EDMX模型。可以从Visual Studio扩展管理器安装生成器模板
安装模板后,请按照本文第4点下的步骤进行操作:
(将文章中的“ADO.NET DbContext Generator”替换为已安装的“EF 4.x DbContext Generator”,这是EF 4.3.1的最新重命名版本)
该模板将从您的EDMX模型生成POCO类和派生的
DbContext
。看看这篇文章“这将允许您在不做任何更改的情况下继续使用现有代码。”。我发现,虽然新上下文是基于DbContext创建的,但旧的上下文定义仍然保留在edmx codebeahind designer.cs文件中。结果,我所有的对象/表在编译时都出现了被重新定义的错误。@Jeff:真奇怪。在EDMX设计器界面中使用“添加代码生成项…”时,实际上应清空designer.cs文件(自动生成的注释除外)。您是否在同一项目/组件中拥有所有内容?也许会问一个关于这个问题的新问题,我不知道这种混乱是怎么发生的。我的模型在一个单独的项目中。