Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework 缓慢地迁移EDMX应用程序以使用DbContext?_Entity Framework_Dbcontext_Edmx - Fatal编程技术网

Entity framework 缓慢地迁移EDMX应用程序以使用DbContext?

Entity framework 缓慢地迁移EDMX应用程序以使用DbContext?,entity-framework,dbcontext,edmx,Entity Framework,Dbcontext,Edmx,我有一个遗留的EF4库,其中包含一个数据库,该数据库首先使用EntityObjects生成ObjectContext。我想慢慢迁移到使用DbContext,需要一些指导 DbContext的一个重载接受现有的ObjectContext。我认为这将允许我将现有的ObjectContext包装在DbContext中,并通过IDbSet属性公开现有的EntityObjects。遗憾的是,在创建DbContext时,不会创建IDbSet属性,而是引发异常,并显示一条消息:“验证该类型是否定义为类、是否为

我有一个遗留的EF4库,其中包含一个数据库,该数据库首先使用EntityObjects生成ObjectContext。我想慢慢迁移到使用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; }
}
公共类MyDbContext:DbContext
{
公共MyDbContext(MyObjectContext objectContext,bool dbContextOwnsObjectContext)
:base(objectContext、dbContextOwnsObjectContext)
{
}
公共IDbSet人员{get;set;}
}

异常是由DbContext尝试创建IDbSet引起的。Person是现有EDMX中的EntityObject。

如您所述,您不能使用EDMX创建的现有实体对象

你有没有考虑过使用这个软件

我已经在几个项目中使用过它们,简单的方法是将它们指向数据库,在同一个项目中生成模型,然后删除edmx文件