ASP.NET EntityFrameworkのCodeFirstを使用してモデルからデータベースを作成していますが、モデルの変更後にデータベースを再作成する必要がある場合、ログインが失敗するようです。
Global.asaxには、次のものがあります。
protected void Application_Start()
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<EntriesContext>());
// ...
}
私のコントローラーには、次のものがあります。
public ActionResult Index()
{
// This is just to force the database to be created
var context = new EntriesContext();
var all = (from e in context.Entries select e).ToList();
}
データベースが存在しない場合は、問題なく作成されます。ただし、モデルに変更を加え、再構築して更新すると、次のエラーが発生します。
Login failed for user 'sa'.
私の接続文字列は次のようになります。
<add name="EntriesContext"
connectionString="Server=(LOCAL);Database=MyDB;User Id=sa;Password=password"
providerName="System.Data.SqlClient" />
これらの資格情報を使用してManagementStudioからサーバーとデータベースに接続できるため、ログインは確実に機能します。
データベースを手動で削除すると、すべてが正しく機能し、モデルに加えられた変更を反映したスキーマを使用して、データベースが期待どおりに再作成されます。
パスワードまたはデータベースへのアクセスが失われているようです。
これを機能させるために他に何かする必要がありますか?