添加Controller Scaffolding时出错

时间:2012-05-10 04:14:08

标签: asp.net asp.net-mvc visual-studio-2010 web-config

尝试添加带有脚手架的Controller并收到错误。似乎与我的连接字符串有关。

"unable to retrieve metadata for DOTNETMEMBER.Song. Failed to set database initializer type of type DOTNET.DataContextInitializer, DOTNETMEMBER' specified in the application configuration. Entries should be in the form of 'key=DatabaseInitializerForType MyNamespace.MydbContextClass, MyAssembly'.初始化类必须具有无参数构造函数。有关详细信息,请参阅内部异常。

这是我的连接字符串

  <connectionStrings>
    <add name="DataContext"
         connectionString="Data Source=|DataDirectory|RTDOTNETMEMBER.sdf"
         providerName="System.Data.SqlServerCe.4.0" />
  </connectionStrings>

  <appSettings>
    <add key="webpages:Version" value="1.0.0.0"/>
    <add key="ClientValidationEnabled" value="true"/>
    <add key="UnobtrusiveJavaScriptEnabled" value="true"/>
    <!--Used to initialize the database-->
    <add key="DatabaseInitializerForType DOTNET.DataContext, DOTNETMEMBER" value="DOTNET.DataContextInitializer, DOTNETMEMBER" />
  </appSettings>

是因为SQL Compact吗?

1 个答案:

答案 0 :(得分:2)

我担心这不是一个全面的答案,因为我不完全理解其中的原因,但当我遇到同样的问题时,这种解决方法让我可以继续做下去并停止挠我的头:

  1. 进入Web.config并注释掉包含DatabaseInitializerForType键的行(快捷键:将光标放在行上,然后按ctrl-K和ctrl-C)。
  2. 构建项目(ctrl-shift-B)
  3. 正常添加控制器脚手架。
  4. 取消注释Web.config中的初始化键(ctrl-K,ctrl-U)。
  5. 是的,它是一种随意刺入黑暗的方法,但我会把它留在这里,以防它帮助其他人搜索同样的问题!