Когда я создаю контекст со строкой подключения по умолчанию (как прочитано из 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