C# 使用标识将新表添加到ASP.NET核心MVC应用程序中

C# 使用标识将新表添加到ASP.NET核心MVC应用程序中,c#,database,asp.net-core,asp.net-identity,C#,Database,Asp.net Core,Asp.net Identity,我有一个关于在ASP.NET核心MVC应用程序中创建新表的问题。我用“个人用户帐户”创建了它,所以我在DB中有标识表 如何在此数据库中创建自己的表?我应该创建一个新的数据库上下文吗 例如:我想为学生和问题(以及他们的答案)创建一个表格 创建您的模型: 假设您有以下模型: public class Post{ public int Id {get; set;} public string Name {get; set;} } 在根目录中,创建一个名为Persistence的文件夹(

我有一个关于在ASP.NET核心MVC应用程序中创建新表的问题。我用“个人用户帐户”创建了它,所以我在DB中有标识表

如何在此数据库中创建自己的表?我应该创建一个新的数据库上下文吗

例如:我想为学生和问题(以及他们的答案)创建一个表格

  • 创建您的模型

    假设您有以下模型:

    public class Post{
    
      public int Id {get; set;}
      public string Name {get; set;}
    
    }
    
  • 在根目录中,创建一个名为Persistence的文件夹(或者您可以随意调用它)

  • 在持久性文件夹中添加这样的类

    public class MyDbContext : DbContext {
    
        public DbSet<Post> Posts {get; set;}
        public MyDbContext((DbContextOptions<MyDbContext> options)
         : base (options)
        {
    
        }
    }
    
    公共类MyDbContext:DbContext{
    公共DbSet Posts{get;set;}
    公共MyDbContext((DbContextOptions)
    :基本(选项)
    {
    }
    }
    
  • 现在在
    Startup.cs
    中,将此行添加到
    ConfigureServices
    功能中:

    services.AddDbContext(options=>options.UseSqlServer(“connStr”);

  • 现在是使用
    dotnet cli创建第一次迁移的时候了

  • dotnet ef迁移添加AddPostsTable--上下文MyDbContext

    有关详细信息,请访问:

  • 创建您的模型

    假设您有以下模型:

    public class Post{
    
      public int Id {get; set;}
      public string Name {get; set;}
    
    }
    
  • 在根目录中,创建一个名为Persistence的文件夹(或者您可以随意调用它)

  • 在持久性文件夹中添加这样的类

    public class MyDbContext : DbContext {
    
        public DbSet<Post> Posts {get; set;}
        public MyDbContext((DbContextOptions<MyDbContext> options)
         : base (options)
        {
    
        }
    }
    
    公共类MyDbContext:DbContext{
    公共DbSet Posts{get;set;}
    公共MyDbContext((DbContextOptions)
    :基本(选项)
    {
    }
    }
    
  • 现在在
    Startup.cs
    中,将此行添加到
    ConfigureServices
    功能中:

    services.AddDbContext(options=>options.UseSqlServer(“connStr”);

  • 现在是使用
    dotnet cli创建第一次迁移的时候了

  • dotnet ef迁移添加AddPostsTable--上下文MyDbContext


    更多信息请访问:

    因为您已经说过您使用了
    个人用户帐户
    标识模板,您可以在其上添加自定义模型,例如:

     public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid>
        {
            public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
                : base(options)
            {
            }
    
            protected override void OnModelCreating(ModelBuilder builder)
            {
                base.OnModelCreating(builder);
                //....
            }
        public DbSet<Student> Students{ get; set; }
        public DbSet<Question> Questions { get; set; }
        public DbSet<Answer> Answers { get; set; }
        //....
        }
    

    public class ApplicationDbContext:IdentityDbContext

    既然您已经说过您使用了
    个人用户帐户
    标识模板,您可以在其上添加自定义模型,例如:

     public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid>
        {
            public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
                : base(options)
            {
            }
    
            protected override void OnModelCreating(ModelBuilder builder)
            {
                base.OnModelCreating(builder);
                //....
            }
        public DbSet<Student> Students{ get; set; }
        public DbSet<Question> Questions { get; set; }
        public DbSet<Answer> Answers { get; set; }
        //....
        }
    


    public class ApplicationDbContext:IdentityDbContext

    为您自己的表/类使用不同的DbContext。@Nikolaus好的,您能帮我吗?我应该在ApplicationDbContext.cs的哪里添加一个新的上下文?我将非常感谢与此相关的任何链接。@АааСаа您可能需要遵循本教程:至于注释/a回答其他人的问题,您需要定义类的确切问题在哪里,在您的DbContext中使用,…您有什么(代码)?为您自己的表/类使用不同的DbContext。@Nikolaus好的,您能帮我吗?我应该在ApplicationDbContext.cs中的什么位置添加新的上下文?非常感谢与此相关的任何链接。@АццСцц您可能需要遵循本教程:至于其他人的评论/答案,您需要定义的确切问题在哪里类,在DbContext中使用,…您有什么(代码)?所以,我添加了这些类和它们的数据库集。我更新了数据库,一切看起来都很好。我在哪里可以找到创建的表?在SQL Server Obj.Manager中,我只有标识表。你创建/运行了迁移吗?没有,你能提供一些关于这方面的信息吗?哇,m8,谢谢你的关注和时间。你节省了我大量的时间。顺便说一下,我试着和我们联系e“添加迁移”命令中没有“-”,所以它不起作用。@FelixToo我试图从ef6移动到efcore,但对我来说似乎有一个断开连接…是否有任何gd文章/链接指向在哪里设置有组织的fluent builder代码,以及其他什么…ef6代码在这方面首先似乎更好。当我得到上述内容时询问,希望你在这方面花费的时间比我多,所以,也许你们可以展示/告诉我什么是有效的。所以,我添加了这些类和它们的数据库集。我更新了数据库,一切看起来都很好。我可以在哪里找到创建的表?在SQL Server Obj.Manager中,我只有标识表。你们创建/运行了迁移吗?不,你们能提供一些关于这方面的信息吗?哇,m8,谢谢你们的关注和时间。你们已经节省了一个huge我的时间量。P.S.我尝试使用“添加迁移”命令中没有“-”,所以它不起作用。@FelixToo我试图从ef6移动到efcore,但对我来说似乎有一个断开连接…是否有任何gd文章/链接指向在哪里设置有组织的fluent builder代码,以及其他什么…ef6代码在这方面首先似乎更好。当我得到上述内容时询问,希望你在这方面花费的时间比我多,所以也许你能告诉我什么有效。。