2013-11-25 15 views
5

Projem için Entity Framework (v5) Kod Tabanlı Taşımaları yapıyorum.Varlık Çerçeve Kodu İlk Geçişler: sql komut dosyalarını programlı olarak alın

Müşterilerimizden gelen db yöneticileri bazen biraz paranoyaktır ve sql komut dosyalarını el ile yürütmek ister.

Zaten çok sayıda sürümümüz var ve SqlServer ve Oracle'ı paralel olarak desteklediğimizden, x.x.x.x - y.y.y.y.'ye kadar olan tüm olası sürümlerden çeşitli güncelleme komut dosyalarını yönetmek istemiyoruz. ben Yani müşteri doğru sql onun db sistemi ve güncel sürümünü bağlı basit bir konsol uygulaması aracılığıyla alacağı Paket Yöneticisi Konsolundan

Update-Database -Script 

yılında diyoruz aynı şekilde programlı sql komut dosyası almak mümkün değil mi çıktı olarak komut dosyası.

+0

gerekenler veya açıkça benim için sorun değil nerede? –

+0

Visual Studio Konsolumdan 'Update-Database 'öğesini arayabilirim ancak kaynak koduyla aramak istiyorum. Böylece istemci, sql'yi dinamik olarak oluşturan küçük bir uygulama yürütebilir. – StefanG

+0

Bunun için bir DBMigrator'a ihtiyacım var. –

cevap

8
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(); 

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


temelde

DbMigrator db = new DbMigrator(HERE CONNECTION STRING); 
db.Update(HERE TARGET VERSION); 
İlgili konular