1

スキャフォールディングを使用してコントローラーを追加しようとすると、エラーが発生します。私の接続文字列と関係があるようです。

"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のせいですか?

4

1 に答える 1

2

理由がよくわからないため、これは包括的な答えではないのではないかと思いますが、同じ問題が発生した場合、この回避策により、問題を解決して頭を悩ませるのをやめることができました。

  1. Web.configに移動し、キーを含む行をコメントアウトしDatabaseInitializerForTypeます(ショートカット:カーソルをその行に置き、次にctrl-Kとctrl-Cを置きます)。
  2. プロジェクトをビルドする(ctrl-shift-B)
  3. 通常どおり、コントローラーの足場を追加します。
  4. Web.config(ctrl-K、ctrl-U)の初期化キーのコメントを解除します。

はい、それは少しランダムな暗闇の中でのアプローチですが、他の誰かが同じ問題をグーグルするのに役立つ場合に備えて、ここに残しておきます!

于 2013-01-03T10:50:45.967 に答える