私はEntity Framework Code FirstでASP.NET MVC 3を学習しています。私はチュートリアルに従っており、ローカルマシンでテストするための対応するソリューションをダウンロードしました。さて、私がよく理解していなかったのは、データベースの自動作成(ディスクにまだ存在していない場合)です。アプリケーションを初めて実行すると、データベースが作成されます。それで大丈夫です。ここでEF4でのデータベースの自動作成に関する問題
は、Web.configファイル
<add name="BlogContext"
connectionString="Data Source=.\SQL2008;Initial Catalog=CodeFirstMVC.mdf;Integrated Security=SSPI"
providerName="System.Data.SqlClient" />
内のセクションですが、私は2つの問題を抱えて:
第一に。テスト目的のために、私はディスク上のデータベースを削除し、再度ソリューションを実行します。私は、データベースが自動的に作成されるだろうと思ったが、私は間違っていた:私は下のエラーメッセージが表示されました:
{"Unable to open the physical file \"c:\\Program Files\\Microsoft SQL Server\\MSSQL10.SQL2008\\MSSQL\\DATA\\CodeFirstMVC.mdf.mdf\". Operating system error 2: \"2(failed to retrieve text for this error. Reason: 15105)\".\r\nCannot open database \"CodeFirstMVC.mdf\" requested by the login. The login failed.\r\nLogin failed for user 'sa'.\r\nFile activation failure. The physical file name \"c:\\Program Files\\Microsoft SQL Server\\MSSQL10.SQL2008\\MSSQL\\DATA\\CodeFirstMVC.mdf_log.LDF\" may be incorrect."}
私は私のWeb.configファイル名を変更した場合、データベースが再び正常に作成されていることに気づきました。 私を説明できますか?データベース名を変更して再度実行する必要があるのはなぜですか?
第2位。データベースは、C:¥Program Files¥Microsoft SQL Server¥MSSQL10.SQL2008¥MSSQL¥DATAにあるフォルダに作成されます。私はApp_Dataディレクトリに自分のデータベースを保存したいと思います。 どうすればいいですか?
私の2番目の質問にお答えします、ありがとうございます。私の最初の質問では、データベースを削除してもう一度実行するとアイデアがありますが、なぜデータベース名を変更する必要があるのですか(そうでなければエラーメッセージが表示されます)。 – Bronzato
私の編集で説明しました。 –
私は理解しています。ローカルマシンでSQL Server Express 2008をインストールしましたが(Management Studioを使用してデータベースを開くことができませんでしたか?)とにかく、私は物事を変更し、SQL Server Expressデータベースを使用するにはどうすればいいですか?またはSQLCEデータベース?私は私のマシンに両方をインストールしました。ありがとう – Bronzato