1

ASP.NetMVCサイトのチュートリアルを使用してスキルをASP.NetMVC3、Entity Framework、SQL CE 4.0などにアップグレードしています。ただし、ExpressではなくVisual Studio2010Professionalを使用しています。このレッスンでは、SQL CE 4.0データベースMovies.sdfが自動的に作成され、App_Dataに保存されることになっています。ただし、プログラムは正常に実行され、アイテムの作成、挿入、デバッグの停止、再起動を行うことができ、データはまだそこにあります。ただし、App_Dataフォルダーまたはプロジェクト内の他のフォルダーにはMovies.sdfファイルはありません。

Visual Studio 2010 Expressをダウンロードし、チュートリアルの手順を再度実行すると、今回はApp_Dataにファイルが作成されます。

私の質問は次のとおりです。|DataDirectory|はどこにありますか Visual Studio 2010 Professionalでポイントし、VS 2010 Expressと異なるのはなぜですか?|DataDirectory|でプログラムを実行する前に確認できる方法はありますか。に設定されています?

4

1 に答える 1

1

同様の問題があると思いました。接続文字列名にタイプミスがあったことがわかりました。

EF4 コードは、DBContext クラスとまったく同じ名前が付けられている場合にのみ、最初に接続文字列を取得します。おそらく、デフォルトの SQLExpress 接続文字列を使用していることに気付くでしょう。

パスを手動で設定する場合は、これを Application_Start() に入れることができます

  protected void Application_Start()
    {
        AppDomain.CurrentDomain.SetData("DataDirectory", "C:\\pathToMyDatabase\\");
    }

ここで DataDirectory の既定値を確認できます: 接続文字列の SQL Server Compact 'Data Directory' マクロ - 詳細情報が必要

于 2011-06-21T12:37:06.493 に答える