当我使用默认的连接字符串(从中读取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
>()
);
规格:实体框架:5.0,数据库:SQL Server Express 2008
蝴蝶刀刀