2013-02-20 13 views
6

私は当初、既存のデータベースに接続していたEFコードを最初にセットアップしました。これはうまくいきました。EFコードFirst - データベースの作成 - ユーザーのログインに失敗しました

私はPOCOにいくつか変更を加え、コードを最初に私のために新しいデータベースを生成することに決めました。

エラー:ログインで要求されたデータベース「MyDatabase」を開けません。ログインに失敗しました。\ r \ nユーザー 'DOMAIN \ username'のログインに失敗しました。

私は古いデータベースを削除したが、私は、接続文字列を変更しませんでした:

<add name="MyDatabaseContext" connectionString="Data Source=localhost;Initial Catalog=MyDatabase;Integrated Security=True;" providerName="System.Data.SqlClient" /> 

私は私のローカルマシン上のSQL Server 2008のインスタンスを持っており、自分のドメインのユーザー名は、「システム管理者」の役割です。

私は様々なデータベース初期化子を試しましたが、私はすべて同じエラーが発生します。最初のクエリ呼び出しで失敗しますが、コードは最初にデータベースを作成しません。私は、接続文字列を古いデータベースのコピー(変更前)に向けることができ、DropCreateDatabaseAlways初期化子を指定しても古いスキーマを除いて正常に実行されます。これは意味をなさないものであり、コードを使って作業している自宅のマシンで経験したことに従わないものです。

Visual Studio 2012とEF5を使用します。

私はコードを最初に新しいデータベースを生成する必要があります。何が起こっている?

答えて

8

私はデータベース初期化子をオーバーライドしていたDbContextクラスに静的コンストラクタを持っていました。

static MyDbContext() 
     { 
      Database.SetInitializer<MyDbContext>(null); 
     } 

コード第1リバースエンジニアがこれを入れて、既存のデータベースを上書きしないようにします。切り替えたとき、私はそれについて考えていませんでした。

これは他の誰かを助けることを望みます。

関連する問題