我有一个传统的EF 4库与数据库第一个生成的ObjectContext与EntityObjects。我想慢慢迁移到使用DbContext,并需要一些指导。慢慢迁移EDMX应用程序以使用DbContext?
DbContext的一个重载需要现有的ObjectContext。我认为这将允许我将我现有的ObjectContext包装在DbContext中,并通过IDbSet属性公开现有的EntityObjects。不幸的是,在创建DbContext时,不会创建IDbSet属性,而是会抛出一个异常:“验证该类型是否定义为类,不是原始类型,嵌套类型或泛型类型,并且不会从EntityObject继承。 “
是否有没有办法使用DbContext与IDbSet暴露现有的ObjectContext和EntityObjects?看起来很奇怪,我可以用ObjectContext创建一个DbContext,但不会公开实体本身。
下面是一些示例代码:
public class MyDbContext : DbContext
{
public MyDbContext(MyObjectContext objectContext, bool dbContextOwnsObjectContext)
: base(objectContext, dbContextOwnsObjectContext)
{
}
public IDbSet<Person> People { get; set; }
}
唯一的例外是由的DbContext试图创建IDbSet引起的。 Person是我现有的EDMX中的一个EntityObject。