Nel*_*son 7 c# ef-migrations entity-framework-5
我正在尝试使用EF代码首次迁移来构建数据库(如果它不存在).到目前为止,我已经Enabled-Migrations成功了.我还习惯于Add-Migrations进行构建数据库的初始迁移.该脚本处于迁移方向,看起来正确.
这是我的Main方法的主体
Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDbContext, Configuration>());
var directConfigContext = new MyDbContext();
Run Code Online (Sandbox Code Playgroud)
我读过的所有内容都说这就是我所需要的.MyDbContext在app.config,看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<connectionStrings>
<add name="MyDbContext" connectionString="Data Source=(localdb)\v11.0;Initial Catalog=DbConfig;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />
</connectionStrings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
</configuration>
Run Code Online (Sandbox Code Playgroud)
此外,如果我使用EF提供的DbMigrator类,则数据库正确构建(可能使用初始数据库迁移脚本).
// This is how it actually works including creating the database if it doesn't exist.
var dbMigrator = new DbMigrator(new Configuration());
dbMigrator.Update();
Run Code Online (Sandbox Code Playgroud)
根据我的理解,设置初始化程序MyDbContext,然后实例化,DbContext应该创建数据库到最新的迁移...我错过了什么?
实例化DbContext不会执行绑定到它的初始化程序.相反,您需要更新数据库或直接调用基础数据库上的初始化程序.
MyDbContext.MyEntity.Add(new MyEntity { Name = "Nelson" });
// Or
MyDb.Context.Database.Initialize(true); // force the initialization
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18459 次 |
| 最近记录: |