3

私はEF5.0を初めて使用しますが、Web.Configの接続文字列に意図的に間違ったデータベース名を設定しました。すなわち、初期カタログ="間違ったデータベース名";

これで、データベースが存在するかどうかを検出するブールプロパティを作成しました。以下のように-ここで、コンテキストはEFDbContextです。

bool IsDatabaseExist = context.DataBase.Exists();

私の質問は、私が提供したデータベース名が間違っていても、なぜこれが常に真であるのかということです。

4

1 に答える 1

1

DbContext派生クラスのコンストラクターに接続文字列を提供しなかった場合は、接続文字列を使用していません。これを行う最も簡単な方法は、DbContextコンストラクターを呼び出すDbContext派生クラスにパラメーターなしのコンストラクターを作成することです。これは次のようになります。

public class MyContext : DbContext
{
    public MyContext() : base("name=connectionStringName")
    { }
    ...
}

connectionString nameは、構成ファイルからの接続文字列の名前です。

アプリケーションが使用している接続文字列を確認する場合は、次の操作を実行できます。

((SqlConnection)myContext.Database.Connection).ConnectionString

ここでのmyContextは、DbContext派生クラスのインスタンスです。

于 2012-10-15T16:38:05.667 に答える