【问题标题】:How to add tables and relations to generated Asp.Net Core MVC Identity database?如何将表和关系添加到生成的 Asp.Net Core MVC Identity 数据库?
【发布时间】:2020-10-10 15:08:48
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net asp.net-mvc asp.net-core asp.net-identity


    【解决方案1】:

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

    要做你想做的事,请按照以下步骤操作:

    第 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”的类。打开它并注册 User 和 Article 类。

     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

    【讨论】:

      猜你喜欢
      • 2018-06-10
      • 2022-01-05
      • 2020-03-19
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多