实体框架代码第一次迁移:以编程方式获取sql脚本

Ste*_*anG 6 .net c# entity-framework code-first

我正在为我的项目实现实体框架(v5)基于代码的迁移.

来自我们客户的数据库管理员有时会有点偏执,并希望手动执行sql脚本.

由于我们已经有很多版本并且我们支持SqlServer和Oracle并行,我们不希望从所有可能的版本管理多个更新脚本xxxx到yyyy是否有可能以与我调用它相同的方式以编程方式获取sql脚本在程序包管理器控制台中

Update-Database -Script
Run Code Online (Sandbox Code Playgroud)

因此,客户端将通过一个简单的控制台应用程序,取决于他的数据库系统和当前版本正确的sql脚本作为输出.

Bas*_*ili 10

  var configuration = new Configuration();
  var migrator = new DbMigrator(configuration);

  var scriptor = new MigratorScriptingDecorator(migrator);
  var script = scriptor.ScriptUpdate(sourceMigration: null, targetMigration: null);
  Console.WriteLine(script);

  migrator.Update();

  var pending = migrator.GetPendingMigrations();
Run Code Online (Sandbox Code Playgroud)

更多信息:http: //weblogs.asp.net/fredriknormen/archive/2012/02/15/using-entity-framework-4-3-database-migration-for-any-project.aspx


基本上你需要

DbMigrator db = new DbMigrator(HERE CONNECTION STRING);
db.Update(HERE TARGET VERSION);
Run Code Online (Sandbox Code Playgroud)