当我使用默认连接字符串(从 中读取app.config
)创建上下文时,会创建数据库并且迁移工作 - 基本上一切都井井有条。而当以编程方式创建连接字符串时(使用SqlConnectionStringBuilder
):
- 数据库不存在时不创建数据库(场景
A
); CreateDbIfNotExists()
创建最新版本的数据库模型,但未调用迁移机制(场景B
)。
当A
我希望访问数据库时抛出异常,因为 - 显然 - 它不存在。在正确创建数据库中,不B
调用迁移机制,就像标准连接字符串中的情况一样。
应用程序配置:“ 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
>()
);
规格:实体框架:5.0,数据库:SQL Server Express 2008