2013-11-25 3 views
5

내 프로젝트에 Entity Framework (v5) 코드 기반 마이그레이션을 구현할 예정입니다.Entity Framework 코드 첫 마이그레이션 : 프로그래밍 방식으로 SQL 스크립트 받기

우리 고객의 db 관리자는 때때로 약간의 편집증 환자이며 SQL 스크립트를 수동으로 실행하려고합니다.

이미 많은 버전이 있고 SqlServer와 Oracle 병렬을 지원하기 때문에 가능한 모든 버전 x.x.x.x에서 y.y.y.y까지 여러 가지 업데이트 스크립트를 관리하고 싶지 않습니다. 내가 그래서 클라이언트가 올바른 SQL 자신의 DB 시스템과 현재 버전을 따라 간단한 콘솔 응용 프로그램을 통해 얻을 것 패키지 관리자 콘솔

Update-Database -Script 

에 전화와 같은 방법으로 프로그래밍 SQL 스크립트를 얻을 수 없습니다 스크립트를 출력으로 보냅니다.

+0

필요하거나 분명 나에게 문제가되지 않습니다 어디? –

+0

Visual Studio Console에서'Update-Database'를 호출 할 수 있지만 소스 코드를 통해 호출하고 싶습니다. 따라서 클라이언트는 SQL을 동적으로 생성하는 작은 응용 프로그램을 실행할 수 있습니다. – StefanG

+0

DBMigrator가 필요합니다. 나는 당신을 위해 모범을 보일 것입니다. –

답변

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

대한 추가 정보 : 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); 
관련 문제