在VS2012中使用动态数据实体网站时出错

时间:2012-10-04 09:35:06

标签: asp.net entity-framework asp.net-dynamic-data

我决定在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之间使用实体框架之间存在一些差异。

4 个答案:

答案 0 :(得分:5)

我仍然在寻找原因,但现在唯一的选择是在VS2010中创建项目,然后将项目迁移到VS2012,然后运行应用程序时没有任何问题

答案 1 :(得分:2)

发生此问题是因为在Visual Studio 2012中,您获得了DbContext(而不是Visual Studio 2010中的ObjectContext)默认情况下为使用EF Designer创建的所有新模型生成的代码。为了解决这个问题,您需要恢复ObjectContext代码生成。

有关详细信息,请参阅Reverting to ObjectContext in EF Designer

答案 2 :(得分:0)

  1. Delete the TT files from the model

  2. Change the "Code Generation Stategy" to "Default"

答案 3 :(得分:0)

在Global.asax文件中,取而代之的是取消注释其他RegisterContext行。

 DefaultModel.RegisterContext( _
           New System.Func(Of Object)(Function() DirectCast(New [Your edmx](), IObjectContextAdapter).ObjectContext), _
           New ContextConfiguration() With {.ScaffoldAllTables = True} _
         )