我有一个旧版 EF 4 库,其中包含数据库首先生成的带有 EntityObjects 的 ObjectContext。我想慢慢迁移到使用 DbContext 并且需要一些指导。
DbContext 的重载之一采用现有的 ObjectContext。我认为这将允许我将现有的 ObjectContext 包装在 DbContext 中,并通过 IDbSet 属性公开现有的 EntityObjects。不幸的是,在创建 DbContext 时,没有创建 IDbSet 属性,而是引发异常并显示以下消息:“验证类型是否定义为类,不是原始的、嵌套的或泛型的,并且不继承自 EntityObject。 "
有没有办法使用带有 IDbSet 的 DbContext 来公开现有的 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。