デフォルトの接続文字列 ( から読み取ったものapp.config
) を使用してコンテキストを作成すると、データベースが作成され、移行が機能します。基本的にはすべて順調です。一方、接続文字列がプログラムで (を使用してSqlConnectionStringBuilder
) 作成された場合:
- データベースが存在しない場合、データベースは作成されません (シナリオ
A
)。 CreateDbIfNotExists()
データベース モデルの最新バージョンを作成しますが、移行メカニズムは呼び出されませんB
(シナリオ)。
A
データベースにアクセスしたいときに例外がスローされます-明らかに-そこにありません。データベースが適切に作成されている場合、標準の接続文字列の場合とは異なり、B
移行メカニズムは呼び出されません。
app.config : " Data Source=localhost\\SQLEXPRESS;Initial Catalog=Db13;User ID=xxx;Password=xxx
"
ビルダー:
sqlBuilder.DataSource = x.DbHost;
sqlBuilder.InitialCatalog = x.DbName;
sqlBuilder.UserID = x.DbUser;
sqlBuilder.Password = x.DbPassword;
初期化子:
Database.SetInitializer(
new MigrateDatabaseToLatestVersion<
MyContext,
Migrations.Configuration
>()
);
仕様: Entity Framework: 5.0、DB: SQL Server Express 2008