我决定在VS2012中使用动态数据实体网站。
因此,我创建了这个网站,然后添加了App_Code
目录并向其添加了一个新的edmx
并将其命名为myDB.edmx
。之后,我取消注释了Global.asax
中注册实体上下文的代码行:
DefaultModel.RegisterContext(typeof(myDBEntities), new ContextConfiguration() { ScaffoldAllTables = true });
但是当我运行网站时,会发生此错误:
The context type 'myDBEntities' is not supported.
我该如何解决它?
p.s:现在,通过Dynamic Data L2S Web Site
使用L2S和通过Dynamic Data Entities Web Site
使用实体框架之间存在一些差异。
我仍在寻找原因,但现在唯一的选择是在VS2010中创建项目,然后将项目迁移到VS2012中,然后运行应用程序没有任何问题
出现此问题的原因是,在 Visual Studio 2012 中,默认情况下,您会收到DbContext
(而不是像 Visual Studio 2010 中那样ObjectContext
)代码,这些代码是为使用 EF 设计器创建的所有新模型生成的。为了解决一个问题,您需要恢复到ObjectContext
代码生成。
有关更多信息,请参见在 EF 设计器中还原到 ObjectContext。
-
从模型中删除 TT 文件
-
将"代码生成状态"更改为"默认"
在 Global.asax 文件中,取消注释另一个 RegisterContext 行。
DefaultModel.RegisterContext( _
New System.Func(Of Object)(Function() DirectCast(New [Your edmx](), IObjectContextAdapter).ObjectContext), _
New ContextConfiguration() With {.ScaffoldAllTables = True} _
)