使用 EF Core Code First 和 IdentityUser 的 .Net Core API

J86

我有一个现有的应用程序,我正在将它重写为带有 ReactJS 前端的 .NET Core API。我还在 API 端,遇到了问题。

代码

我有一个BbUser.cs包含以下代码实体类:

public class BbUser : IdentityUser
{
  public int Points { get; set; } = 0;
  public string DisplayUsername { get; set; }
}

而且我还有一个Artist.cs实体类:

public class Artist
{
  public int Id { get; set; }
  [Required]
  [MaxLength(50)]
  public string FirstName { get; set; }
  [MaxLength(50)]
  public string LastName { get; set; }
  [MaxLength(100)]
  public string UrlFriendly { get; set; }
  public string ImageUrl { get; set; }
  public bool IsVerified { get; set; }
  public DateTime CreatedOn { get; set; }
  public DateTime ModifiedOn { get; set; }
  public ICollection<Lyric> Lyrics { get; set; } = new List<Lyric>();
  public string UserId { get; set; }
  public BbUser User { get; set; }
}

我需要BbUser之间的一对多关系Artist一个用户可以提交多个艺术家和歌词...等。真的很简单的东西。

问题

该应用程序构建良好,但是当我尝试通过点击需要访问数据库的控制器来运行它时,我收到以下错误:

实体类型“IdentityUserLogin”需要定义一个主键。

我在使用常规 EF Code First(不是 Core)时遇到了这个问题,对此的修复在这里不起作用。

用户2771704

如果我在 DbContext 类中使用下一个代码,则此模型对我有用(已编译,并且在运行时没有异常):

    protected override void OnModelCreating(ModelBuilder builder)
    {
        builder.Entity<BbUser>(b => b.ToTable("AspNetUsers"));
        base.OnModelCreating(builder);
    }

不打电话base.OnModelCreating(builder)我得到同样的错误,因为在这种情况下,上下文没有应用与身份相关的模式。

更新:正如您从下面的屏幕截图中看到的那样,一切对我来说都很好:在此处输入图片说明

我还有一个想法,为什么会出现这样的错误。你的 BbContext 是从DbContext类还是继承的IdentityDbContext<IdentityUser>因为如果我使用普通DbContext课程,我会遇到与您的屏幕截图相同的错误

为了使 Idenity 表正常工作,您应该使用IdentityDbContext<IdentityUser>. 在我的工作 DbContext 类的整个代码下方

 public class BbContext :IdentityDbContext<IdentityUser>
    {
        public BbContext(DbContextOptions options):base(options)
        {
            Database.EnsureCreated();
        }

        public DbSet<Artist> Artists { get; set; }
        public DbSet<Lyric> Lyrics { get; set; }
        public DbSet<Heart> Hearts { get; set; }

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<BbUser>(b => b.ToTable("AspNetUsers"));
            builder.Entity<Heart>().HasKey(h => new {h.UserId, h.LyricId});
            base.OnModelCreating(builder);
        }
    }

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结合使用.NET Core Identity和API

来自分类Dev

ASP.NET Core 和 EF Core 1.1 - 使用存储过程显示数据

来自分类Dev

在ASP.NET Core 3.1中扩展IdentityUser之后,如何解决EF Core数据库错误?

来自分类Dev

ASP.NET Core MVC 和 EF Core 1.1

来自分类Dev

如何使用 EF Core Code-First 橋接一個表

来自分类Dev

防止通过EF Core同步使用API

来自分类Dev

EF Core-两个表中的IdentityUser映射

来自分类Dev

ASP.NET 和 EF Core Web API 为对象中的对象返回 null

来自分类Dev

EF Core和Azure

来自分类Dev

通过EF Core + Code First +迁移创建数据库

来自分类Dev

Extending IdentityUser with EF Code-first on VS 2013 SPA AccountController

来自分类Dev

我可以安全地在ASP.NET Core和EF Core中使用非泛型DbContextOptions吗?

来自分类Dev

通过 ef 使用存储库和工作单元更新 .net core 中的特定字段

来自分类Dev

.net core时EF和Entity-SQL之间的区别

来自分类Dev

ASP net Core Razor Pages - EF 和视图的拆分模型

来自分类Dev

ASP.NET MVC Core:添加IdentityUser后发生错误

来自分类Dev

在 asp.net core 中单元测试 UserManager<IdentityUser>

来自分类Dev

如何使用 Code First.Net Core 更新数据库

来自分类Dev

使用EF .NET CORE删除所有相关行给用户

来自分类Dev

使用.net Core和mongodb了解性能

来自分类Dev

使用 .NET Core 服务从 MySQL 读取 č、ć 和 đ

来自分类Dev

带有ASP.NET Core 3.0和EF Core的多租户应用程序

来自分类Dev

具有EF Core迁移和IHttpContextAccessor的ASP.NET Core(3.1)

来自分类Dev

带有EF Core和CosmosDB的ASP.Net Core-IdentityRole问题

来自分类Dev

在EF Core和ASP.NET Core中处理并发的最佳实践?

来自分类Dev

Xunit - 如何使用 Moq 和 EF Core 作为身份主键

来自分类Dev

使用 EF Core 和 Npgsql 查询行(复合)值

来自分类Dev

使用 Fluent API 在 EF Core 2.2 中避免使用 n 对 m 关系和父级的循环级联

来自分类Dev

aspnet.core使用UserManager <IdentityUser>播种数据

Related 相关文章

  1. 1

    结合使用.NET Core Identity和API

  2. 2

    ASP.NET Core 和 EF Core 1.1 - 使用存储过程显示数据

  3. 3

    在ASP.NET Core 3.1中扩展IdentityUser之后,如何解决EF Core数据库错误?

  4. 4

    ASP.NET Core MVC 和 EF Core 1.1

  5. 5

    如何使用 EF Core Code-First 橋接一個表

  6. 6

    防止通过EF Core同步使用API

  7. 7

    EF Core-两个表中的IdentityUser映射

  8. 8

    ASP.NET 和 EF Core Web API 为对象中的对象返回 null

  9. 9

    EF Core和Azure

  10. 10

    通过EF Core + Code First +迁移创建数据库

  11. 11

    Extending IdentityUser with EF Code-first on VS 2013 SPA AccountController

  12. 12

    我可以安全地在ASP.NET Core和EF Core中使用非泛型DbContextOptions吗?

  13. 13

    通过 ef 使用存储库和工作单元更新 .net core 中的特定字段

  14. 14

    .net core时EF和Entity-SQL之间的区别

  15. 15

    ASP net Core Razor Pages - EF 和视图的拆分模型

  16. 16

    ASP.NET MVC Core:添加IdentityUser后发生错误

  17. 17

    在 asp.net core 中单元测试 UserManager<IdentityUser>

  18. 18

    如何使用 Code First.Net Core 更新数据库

  19. 19

    使用EF .NET CORE删除所有相关行给用户

  20. 20

    使用.net Core和mongodb了解性能

  21. 21

    使用 .NET Core 服务从 MySQL 读取 č、ć 和 đ

  22. 22

    带有ASP.NET Core 3.0和EF Core的多租户应用程序

  23. 23

    具有EF Core迁移和IHttpContextAccessor的ASP.NET Core(3.1)

  24. 24

    带有EF Core和CosmosDB的ASP.Net Core-IdentityRole问题

  25. 25

    在EF Core和ASP.NET Core中处理并发的最佳实践?

  26. 26

    Xunit - 如何使用 Moq 和 EF Core 作为身份主键

  27. 27

    使用 EF Core 和 Npgsql 查询行(复合)值

  28. 28

    使用 Fluent API 在 EF Core 2.2 中避免使用 n 对 m 关系和父级的循环级联

  29. 29

    aspnet.core使用UserManager <IdentityUser>播种数据

热门标签

归档