实体类型“客户”不能映射到表,因为它是从“ ApplicationUser”派生的

robert_rg

我正在尝试使用从继承的单独的标识类ApplicationUser,并在它们之间创建关系。企业和客户,企业可以拥有许多客户。添加关系时出现错误。在具有关系的类之间实现添加标识的正确方法是什么?

ApplicationUser.cs

public class ApplicationUser : IdentityUser
{
    public virtual Business Business { get; set; }
    public virtual Customer Customer { get; set; }
    [Required]
    [Display(Name = "First Name")]
    public string FirstName { get; set; }
    [Required]
    [Display(Name = "Last Name")]
    public string LastName { get; set; }
}

Business.cs

public class Business : ApplicationUser
{
    public string BusinessUserId { get; set; }
    [Required]
    public string BusinessName { get; set; }
    [Required]
    [Display(Name = "Address")]
    public string Address { get; set; }

    public ICollection<Customer> Customers { get; set; }

    ....
}

客户.cs

    public class Customer : ApplicationUser
    {
       public string CustomerUserId { get; set; }
       public override Business Business { get; set; }
    }
瑞安

您正在使用TPH,它将与上述实体进入同一表(AspNetUser)。

要使用TPT,您可以配置以下模型

public class ApplicationUser : IdentityUser
{

    public string BusinessId { get; set; }
    [ForeignKey("BusinessId")]
    public virtual Business Business { get; set; }

    public string CustomerId { get; set; }
    [ForeignKey("CustomerId")]
    public virtual Customer Customer { get; set; }

    [Required]
    [Display(Name = "First Name")]
    public string FirstName { get; set; }
    [Required]
    [Display(Name = "Last Name")]
    public string LastName { get; set; }
}

public class Business
{
    [Key]
    public string BusinessUserId { get; set; }
    [Required]
    public string BusinessName { get; set; }
    [Required]
    [Display(Name = "Address")]
    public string Address { get; set; }

    public virtual ApplicationUser User { get; set; }
    public ICollection<Customer> Customers { get; set; }

}

public class Customer 
{
    [Key]
    public string CustomerUserId { get; set; }

    public string BusinessId { get; set; }
    [ForeignKey("BusinessId")]
    public  Business Business { get; set; }

    public virtual ApplicationUser User { get; set; }
}

DbContext:

public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {

    }


    public DbSet<Customer> Customers { get; set; }
    public DbSet<Business> Businesses { get; set; }

}

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何动态地将单个实体类映射到多个表?

来自分类Dev

派生的打字稿类类型不被接受,因为它是自己的基本类型

来自分类Dev

SignalR派生类型

来自分类Dev

ASP.NET/Identity错误:实体类型ApplicationUser不是当前上下文模型的一部分

来自分类Dev

实体类型ApplicationUser不是当前上下文模型的一部分

来自分类Dev

从ApplicationUser到自定义实体添加多对多关系

来自分类Dev

MVC 5 UserManager:实体类型ApplicationUser不是当前上下文模型的一部分

来自分类Dev

广义新类型派生

来自分类Dev

内部派生表

来自分类Dev

解决方案-实体类型ApplicationUser不是当前上下文模型的一部分

来自分类Dev

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

来自分类Dev

实体框架ApplicationUser子实体返回null

来自分类Dev

使用Automapper根据源上的值映射到特定的派生类型

来自分类Dev

实体类型ApplicationUser不是当前上下文的模型的一部分Asp.Net MVC

来自分类Dev

'propertyName'不能用作实体类型'typeName'的属性,因为它已配置为导航

来自分类Dev

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

来自分类Dev

从ApplicationUser派生的Asp.Net核心不同的用户模型

来自分类Dev

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

来自分类Dev

休眠派生实体

来自分类Dev

SignalR派生类型

来自分类Dev

ASP.NET/Identity错误:实体类型ApplicationUser不是当前上下文模型的一部分

来自分类Dev

从ApplicationUser到自定义实体添加多对多关系

来自分类Dev

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

来自分类Dev

复杂派生表的总和

来自分类Dev

实体框架映射到表

来自分类Dev

通过休眠将类映射到数据库表时出现“找不到实体类”错误

来自分类Dev

所有实体类型的键属性必须映射到存储函数返回的相同非空列

来自分类Dev

实体类型ApplicationUser不是当前上下文模型的一部分,DB First具有自定义用户存储

来自分类Dev

MySQL派生表问题

Related 相关文章

  1. 1

    如何动态地将单个实体类映射到多个表?

  2. 2

    派生的打字稿类类型不被接受,因为它是自己的基本类型

  3. 3

    SignalR派生类型

  4. 4

    ASP.NET/Identity错误:实体类型ApplicationUser不是当前上下文模型的一部分

  5. 5

    实体类型ApplicationUser不是当前上下文模型的一部分

  6. 6

    从ApplicationUser到自定义实体添加多对多关系

  7. 7

    MVC 5 UserManager:实体类型ApplicationUser不是当前上下文模型的一部分

  8. 8

    广义新类型派生

  9. 9

    内部派生表

  10. 10

    解决方案-实体类型ApplicationUser不是当前上下文模型的一部分

  11. 11

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

  12. 12

    实体框架ApplicationUser子实体返回null

  13. 13

    使用Automapper根据源上的值映射到特定的派生类型

  14. 14

    实体类型ApplicationUser不是当前上下文的模型的一部分Asp.Net MVC

  15. 15

    'propertyName'不能用作实体类型'typeName'的属性,因为它已配置为导航

  16. 16

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

  17. 17

    从ApplicationUser派生的Asp.Net核心不同的用户模型

  18. 18

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

  19. 19

    休眠派生实体

  20. 20

    SignalR派生类型

  21. 21

    ASP.NET/Identity错误:实体类型ApplicationUser不是当前上下文模型的一部分

  22. 22

    从ApplicationUser到自定义实体添加多对多关系

  23. 23

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

  24. 24

    复杂派生表的总和

  25. 25

    实体框架映射到表

  26. 26

    通过休眠将类映射到数据库表时出现“找不到实体类”错误

  27. 27

    所有实体类型的键属性必须映射到存储函数返回的相同非空列

  28. 28

    实体类型ApplicationUser不是当前上下文模型的一部分,DB First具有自定义用户存储

  29. 29

    MySQL派生表问题

热门标签

归档