EF7迁移-实体类型“”对应的CLR类型不可实例化

捕食者

我尝试使用EF7迁移,并在Organization使用继承模型进行建模时陷入困境

Organization是一个抽象类。有两个具体的类从Individual继承而来Company

我将Organization抽象类设置DbSet<Organization>inDbContext并运行迁移。

我在这里关注本教程

显示以下错误:

实体类型“组织”的对应CLR类型不可实例化,并且模型中没有与特定CLR类型相对应的派生实体类型。

我该怎么办?

编辑-更新代码。

组织:

public abstract class Organization
{
    public Organization()
    {
        ChildOrganizations = new HashSet<Organization>();
    }

    [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public bool Enabled { get; set; }
    public bool PaymentNode { get; set; }
    public DateTime Created { get; set; }
    public DateTime Updated { get; set; }

    // virtual
    public virtual ICollection<Organization> ChildOrganizations { get; set; }
}

个人

public class Individual : Organization
{
    public string SocialSecurityNumber { get; set; }
    public string Firstname { get; set; }
    public string Lastname { get; set; }
}

公司

public class Company : Organization
{
    public string Name { get; set; }
    public string OrganizationNumber { get; set; }
}

DbContext

public class CoreDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<Organization> Organization { get; set; }

    public CoreDbContext(DbContextOptions<CoreDbContext> options)
        : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);
        // Customize the ASP.NET Identity model and override the defaults if needed.
        // For example, you can rename the ASP.NET Identity table names and more.
        // Add your customizations after calling base.OnModelCreating(builder);
    }
}

提前致谢!

乔尔·麦克贝斯

请参阅:https : //docs.microsoft.com/en-us/ef/core/modeling/inheritance

如果不想为层次结构中的一个或多个实体公开DbSet,则可以使用Fluent API确保它们包含在模型中。

如果您不想DbSet为每个子类创建一个,则必须在的OnModelCreating覆盖中显式定义它们DbContext

public class CoreDbContext : IdentityDbContext<ApplicationUser>
{
    public DbSet<Organization> Organization { get; set; }

    public CoreDbContext(DbContextOptions<CoreDbContext> options)
        : base(options)
    {
    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        builder.Entity<Individual>();
        builder.Entity<Company>();

        base.OnModelCreating(builder);
        // Customize the ASP.NET Identity model and override the defaults if needed.
        // For example, you can rename the ASP.NET Identity table names and more.
        // Add your customizations after calling base.OnModelCreating(builder);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体类型MVC5 EF6中的用户

来自分类Dev

如何在运行时首先使用EF代码从ObjectContext获取实体类型的列表?

来自分类Dev

实体类型没有定义键EF6

来自分类Dev

多对多EF7

来自分类Dev

在EF7中加载参考

来自分类Dev

在实体属性中使用NotMapped属性时,EF7添加迁移错误

来自分类Dev

具有TPH继承的实体类型到多个表的EF映射属性

来自分类Dev

EF7 DBContext的配置错误?

来自分类Dev

在MVC6和EF7的BaseController中初始化DbContext吗?

来自分类Dev

实体框架7“ dnx ef迁移添加”缺少输出文件

来自分类Dev

EF7使用SQLite生成错误的迁移

来自分类Dev

还有可能使用EF7将实体类型的配置放入外部类或函数中吗?

来自分类Dev

EF代码优先:具有多个多对一关系的实体类型

来自分类Dev

在EF7中添加相同类型的多个导航属性

来自分类Dev

EF7一对多映射

来自分类Dev

EF7 .NET Core 1 RC2添加迁移失败

来自分类Dev

EF7加载列表中实体的子级

来自分类Dev

Ef Core 3实体类型XOrder不能映射到表,因为它是从Order派生的。只能将基本实体类型映射到表

来自分类Dev

EF Core:无法跟踪实体类型的实例,因为另一个具有相同键值的实例

来自分类Dev

EF Core 3:无法将CLR属性“ Number”添加到实体类型“ CHSIMTBase”,因为它是在CLR类型“合同”上声明的

来自分类Dev

具有Automapper的EF Core引发异常“无法跟踪实体类型”

来自分类Dev

进行EF Core迁移(SmartEnum)时,“找不到适合实体类型的构造函数”

来自分类Dev

EF迁移以更改列的数据类型

来自分类Dev

迁移到MVC6 / EF7:PluralizingTableNameConvention

来自分类Dev

手动编辑EF7迁移类和快照

来自分类Dev

具有TPH继承的实体类型到多个表的EF映射属性

来自分类Dev

EF代码优先:具有多个多对一关系的实体类型

来自分类Dev

EF Core 更新无法跟踪实体类型“广告”的实例

来自分类Dev

SDN 参数化关系实体类型

Related 相关文章

  1. 1

    实体类型MVC5 EF6中的用户

  2. 2

    如何在运行时首先使用EF代码从ObjectContext获取实体类型的列表?

  3. 3

    实体类型没有定义键EF6

  4. 4

    多对多EF7

  5. 5

    在EF7中加载参考

  6. 6

    在实体属性中使用NotMapped属性时,EF7添加迁移错误

  7. 7

    具有TPH继承的实体类型到多个表的EF映射属性

  8. 8

    EF7 DBContext的配置错误?

  9. 9

    在MVC6和EF7的BaseController中初始化DbContext吗?

  10. 10

    实体框架7“ dnx ef迁移添加”缺少输出文件

  11. 11

    EF7使用SQLite生成错误的迁移

  12. 12

    还有可能使用EF7将实体类型的配置放入外部类或函数中吗?

  13. 13

    EF代码优先:具有多个多对一关系的实体类型

  14. 14

    在EF7中添加相同类型的多个导航属性

  15. 15

    EF7一对多映射

  16. 16

    EF7 .NET Core 1 RC2添加迁移失败

  17. 17

    EF7加载列表中实体的子级

  18. 18

    Ef Core 3实体类型XOrder不能映射到表,因为它是从Order派生的。只能将基本实体类型映射到表

  19. 19

    EF Core:无法跟踪实体类型的实例,因为另一个具有相同键值的实例

  20. 20

    EF Core 3:无法将CLR属性“ Number”添加到实体类型“ CHSIMTBase”,因为它是在CLR类型“合同”上声明的

  21. 21

    具有Automapper的EF Core引发异常“无法跟踪实体类型”

  22. 22

    进行EF Core迁移(SmartEnum)时,“找不到适合实体类型的构造函数”

  23. 23

    EF迁移以更改列的数据类型

  24. 24

    迁移到MVC6 / EF7:PluralizingTableNameConvention

  25. 25

    手动编辑EF7迁移类和快照

  26. 26

    具有TPH继承的实体类型到多个表的EF映射属性

  27. 27

    EF代码优先:具有多个多对一关系的实体类型

  28. 28

    EF Core 更新无法跟踪实体类型“广告”的实例

  29. 29

    SDN 参数化关系实体类型

热门标签

归档