데이터베이스 기반의 생성 된 ObjectContext와 EntityObjects를 가진 레거시 EF 4 라이브러리가 있습니다. 나는 천천히 DbContext를 사용하여 마이 그 레이션하고 싶습니다.EDMX 응용 프로그램을 천천히 마이그레이션하여 DbContext를 사용 하시겠습니까?
DbContext의 오버로드 중 하나는 기존 ObjectContext를 사용합니다. 이 방법으로 DbContext에서 기존의 ObjectContext를 래핑하고 IDbSet 속성을 통해 기존의 EntityObjects를 노출 할 수 있다고 생각했습니다. 아쉽게도 DbContext를 만들 때 IDbSet 속성이 만들어지지 않고 대신 다음 메시지와 함께 예외가 throw됩니다. "형식이 클래스로 정의되었는지, 프리미티브, 중첩 또는 범용이 아니며 EntityObject에서 상속되지 않는지 확인합니다. "
IDbSet에서 기존 ObjectContext와 EntityObjects를 노출하는 DbContext를 사용할 방법이 없습니까? ObjectContext를 사용하여 DbContext를 만들 수 있지만 엔티티 자체는 노출시키지 않는 것이 이상하게 보입니다.
public class MyDbContext : DbContext
{
public MyDbContext(MyObjectContext objectContext, bool dbContextOwnsObjectContext)
: base(objectContext, dbContextOwnsObjectContext)
{
}
public IDbSet<Person> People { get; set; }
}
예외가 IDbSet를 만들기 위해 노력 DbContext로 인해 발생 :
는 여기에 몇 가지 예제 코드입니다. Person은 기존 EDMX의 EntityObject입니다.