에 변경 내용을 커밋하지 않습니다DbMigrator는 <code>EntityFramework</code>에서 프로그래밍 방식 <code>DbMigrator</code> 클래스를 사용하여 SQL Server 데이터베이스를 초기화하기 위해 노력하고있어 데이터베이스
var configuration = new MyDataBaseAssembly.Migrations.Configuration();
configuration.TargetDatabase = new System.Data.Entity.Infrastructure.DbConnectionInfo(myConnectionString, "System.Data.SqlClient");
var dbMigrator = new DbMigrator(configuration);
dbMigrator.Update();
using (var context = new MyDataBaseAssembly.MyDataBaseContext(myConnectionString))
{
// do some queries
context.MyTable1.ToList();
}
이상한 것은이 코드를 제외한 모든 내 데이터베이스 어셈블리에 대해 잘 작동하는지 . 어떤 이유로 DB의 하나가 초기화 점점되지 않으며, 나는 예외를 수신하고 있습니다 :
System.Data.SqlClient.SqlException: Invalid object name 'dbo.MyTable1'.
나는 SQL Server 프로파일 러를 열고
, 나는 모든 마이그레이션이 오류없이 적용되고 있는지 확인할 수 있습니다. 그러나 SQL Server Management Studio에서 데이터베이스를 열면 전혀 테이블이없는 것을 볼 수 있습니다.추가 조사를 마치면 dbMigrator.Update
이 실행 된 후에 사용하는 트랜잭션이 DB에 커밋되지 않았 음을 알 수 있습니다 (DBCC OPENTRAN
출력은 트랜잭션이 아직 열려 있음). 그리고 어떤 이유로 인해 MyDataBaseContext
을 사용하여 일부 쿼리를 시도하기 전에 트랜잭션 데이터가 삭제됩니다.
이러한 문제의 원인은 무엇입니까? dbMigrator.Update
이 일부 데이터베이스에서는 필요한 모든 마이그레이션을 커밋하지만 다른 데이터베이스에서는 마이그레이션하지 않는 이유는 무엇입니까? dbMigrator
트랜잭션을 수동으로 제어하고 강제로 커밋 할 수 있습니까?