코드 첫 마이그레이션과 코드 기반 마이그레이션 작업을 시도하고 있습니다 (Automatedmigration = false). 그건 지금 내가 할 수있는 일 :EF 코드 처음 마이그레이션 : SetInitializer 및 초기화
는 마이그레이션을 사용 -run
- 추가 마이그레이션 초기
합니다 (migrationhistory 테이블을 만들려면) "데이터베이스 갱신"을 사용하여, 일루와 마이그레이션
문구를 넣을 변경 내 모델
-execute 추가 마이그레이션 "changesInMyModel"이제
에 내가 뭘하려고 모두 실행할 수있다 자동으로 마이 그 레이션. 같은 사용 일 : 후
[Test]
public void UpdateDataModel()
{
Database.SetInitializer(
new MigrateDatabaseToLatestVersion<MyContext, MyConfiguration>());
var dc = new MyContext();
dc.Database.Initialize(true);
}
테스트를 실행하고 난 내 변경 사항을 볼 수있는 데이터베이스로 이동합니다. 무엇을 할 수 있습니까? 조언을 환영합니다!
업데이트 : Myconfiguration 클래스에서 Automatedmigration = false를 사용 중입니다.
MyConfiguration 클래스는 공용이며 외부 프로젝트의 부모 프로젝트 외부에 표시됩니다.
소스 코드에서 Database.SetInitializer를 사용하고 있기 때문에 app.config에서 구성을 사용하지 않을 것입니다.
내 테스트 MigrationHistory은 마이그레이션이 잘 실행 콘솔 패키지 관리자에서 업데이트 데이터베이스를 실행
만들어 실행하기 전에
.업데이트 : 예 : http://msdn.microsoft.com/en-us/data/jj591621.aspx의 예제 (코드 기반 마이그레이션 사용)가 수정되었지만 문제가 여전히 있습니다. - 마이그레이션 사용 - 마이그레이션 추가 - SetInitializer 및 초기화를 시도하지만 아무 일도 일어나지 않습니다.
업데이트 :- SetInitializer 및 Initialize는 Automatedmigration = true 일 때 정상적으로 작동하며 모델의 변경 사항은 db와 동기화됩니다. - 코드를 사용하여 작동합니다.
new DbMigrator(new Configuration()).Update(); What should be the difference?
올바른 데이터베이스에 연결하고 있습니까? 'dc.Database.Connection.ConnectionString'이 당신이 기대하는 것인지 확인하십시오. – bricelam
예, 올바른 연결 문자열로 작업 중입니다. – Rolando
그 글과 이주 이니셜 라이저에 몇 개의 글이 있습니다.하지만 이니셜 라이저를 게시해야합니다. 그렇지 않으면 문제가 발생하지 않습니다 (다른 문제가 아닌) – NSGaga