【发布时间】:2013-03-08 10:06:19
【问题描述】:
当我使用默认连接字符串(从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
【问题讨论】:
-
我正在努力解决类似的问题,我曾问过stackoverflow.com/questions/15830030/…`
标签: entity-framework ef-code-first connection-string entity-framework-migrations