我有一个项目,我必须制作一个 ASP.NET Core MVC Web 应用程序,其中我应该包括用户注册、登录和一个带有基本 CRUD 操作和相应 View 的 SQL 数据库。对于登录和注册,我决定按照本教程使用 Asp.Net Core Identity:https://youtu.be/CzRM-hOe35o .一切正常,注册和登录看起来都很好,但我不知道如何将我的数据库与 Identity 生成的数据库一起使用。 我对项目数据库的想法是为用户和文章(有更多表,但我将保持简单来解释我的问题)创建一个表,并具有一对多关系。既然我已经为所有关于用户的事情生成了一个数据库(来自身份教程),我怎样才能在数据库中包含这个文章表并在 AspNetUsers 和文章之间建立一对多的关系? 或者我可以在我的项目中使用两个数据库,一个有用户,另一个有其他项目表吗?但是如何建立来自不同数据库的表之间的关系,甚至可能吗?
最佳答案
首先,您应该知道您可以使用两个数据库,但绝不能在这种情况下使用。
按照以下步骤做你想做的事:
第 1 步 - 在名为“Data”的项目文件夹中创建一个名为“User”的类。类将是这样的:
public class User : IdentityUser
{
}
第 2 步 - 在名为“Data”的同一文件夹中创建另一个名为“Article”的类。
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 步 - 转到您在第一步中创建的“用户”类并将其编辑为如下所示
public class User : IdentityUser
{
public virtual ICollection<Article> Articles { get; set; }
}
第 4 步 - 在您添加这两个类的同一文件夹中,您有另一个名为“ApplicationDbContext”的类。打开它并注册用户和文章类。
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 Core 如何工作的更多信息,请参阅链接:https://www.learnentityframeworkcore.com/conventions/one-to-many-relationship#:~:text=The%20easiest%20way%20to%20configure,public%20class%20Author
关于c# - 如何向生成的 Asp.Net Core MVC Identity 数据库添加表和关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62485906/