如何将表和关系添加到生成的 Asp.Net 核心 MVC 身份数据库?

How to add tables and relations to generated Asp.Net Core MVC Identity database?

我有一个项目,我必须制作一个 ASP.NET 核心 MVC Web 应用程序,其中我应该包括用户注册、登录和一个 SQL 数据库,其中包含基本的 CRUD 操作和相应的视图.对于登录和注册,我决定按照本教程使用 Asp.Net Core Identity:https://youtu.be/CzRM-hOe35o。一切正常,注册和登录看起来都很好,但我不知道如何将我的数据库与 Identity 生成的数据库一起使用。 我对项目数据库的想法是为用户和文章设置一个 table(还有更多 table,但我将保持简单来解释我的问题)具有一对多关系。既然我已经为所有关于用户的事情生成了数据库(来自身份教程),我如何将这篇文章 table 包含在数据库中并在 AspNetUsers 和文章之间建立一对多关系? 或者我可以在我的项目中使用两个数据库,一个与用户一起使用,另一个与其他项目 tables 一起使用吗?但是如何在来自不同数据库的 table 之间建立关系,甚至可能吗?

首先,您应该知道您可以使用两个数据库,但绝不能在这种情况下使用。

如需执行您的操作,请按照以下步骤操作:

第 1 步 - 在名为“Data”的项目文件夹中创建一个名为“User”的 class。 Class 会是这样的:

public class User : IdentityUser
{
   
}

第 2 步 - 在名为“Data”的同一文件夹中创建另一个名为“Article”的 class。

 public class Article
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
    public virtual User User { get; set; }
}

第 3 步 - 转到您在第一步中创建的“用户”class 并将其编辑为如下所示

 public class User : IdentityUser
{
    public virtual ICollection<Article> Articles { get; set; }
}

第 4 步 - 在您添加这两个 class 的同一文件夹中,您有另一个 class 名为“ApplicationDbContext”。打开它并注册用户和文章 classes.

 public class ApplicationDbContext : IdentityDbContext
{
    public DbSet<User> Users { get; set; }
    public DbSet<Article> Articles { get; set; }
    public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
        : base(options)
    {
    }
}

第 5 步 - 在您的本地数据库中删除之前从您的项目生成的现有数据库。 之后是“添加迁移”和“更新数据库”

有关 Entity Framework 核心如何工作的更多信息,请参阅 link:https://www.learnentityframeworkcore.com/conventions/one-to-many-relationship#:~:text=The%20easiest%20way%20to%20configure,public%20class%20Author