2012-05-10 10 views
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コンパクトのですね。

答えて

2

私は理由を完全には理解していないので、これは包括的な答えではないのですが、同じ問題に遭遇したときに、この問題を解決して私の頭を傷つけないようにしました。

  1. Web.configファイルに移動し、DatabaseInitializerForTypeキー(ショートカット:Ctrl + KキーとCtrl-C、その後の行にカーソルを置きます)を含む行をコメントアウトします。
  2. プロジェクトをビルドします(Ctrl-Shift-B)
  3. コントローラーの足場を通常どおりに追加します。
  4. Web.config(ctrl-K、ctrl-U)でイニシャライザキーのコメントを外します。

はい、それはランダムなスタブ・イン・ザ・ダークのアプローチですが、他の誰かが同じ問題を見つけるのを助けるためにここに残しておきます!

関連する問題