C# Asp.Net标识和代码优先迁移

C# Asp.Net标识和代码优先迁移,c#,asp.net,C#,Asp.net,我为asp.net identity安装了nuget软件包,然后通过创建新用户,在我的数据库中创建所有表,例如AspNetRoles、AspNetUsers 问题是,我正在尝试使用CodeFirst迁移进行DB源代码管理,而我的VisualStudio端没有这些表的模型。我不希望createuser方法自动创建表,我需要在visualstudio中获取模型,然后使用迁移推送它 目前,我的数据库中有所有[AspNet]表,在迁移中没有反映这一点。我可以删除这些表,但首先需要知道如何填充代码 我以后

我为asp.net identity安装了nuget软件包,然后通过创建新用户,在我的数据库中创建所有表,例如AspNetRoles、AspNetUsers

问题是,我正在尝试使用CodeFirst迁移进行DB源代码管理,而我的VisualStudio端没有这些表的模型。我不希望createuser方法自动创建表,我需要在visualstudio中获取模型,然后使用迁移推送它

目前,我的数据库中有所有[AspNet]表,在迁移中没有反映这一点。我可以删除这些表,但首先需要知道如何填充代码


我以后可能还需要自定义模型,但这是另一个问题。

花了我两个小时才发现我只需要添加一个继承IdentityUser的模型,然后添加一个迁移。我已经调用了模型ApplicationUser——根据我找到的关于如何扩展AspNetRoles的教程和stackoverflow中的某个地方的答案,似乎这个名称可能是自动的或是在某个地方搭建的。。。但我只是把它手动扔进了我的模型文件夹:


此外,我还必须修改应用程序的上下文以从IdentityDbContext继承-这样我就不需要两个单独的连接字符串,我的应用程序上下文现在已经包含了所有内容。

您可以扩展asp.net身份,如下所示

 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public DbSet<Employee> Employees { get; set; }
        public DbSet<Attendance> Attendances { get; set; }
        public DbSet<PunchRecord> PunchRecords { get; set; }
    }
 public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
    {
        public DbSet<Employee> Employees { get; set; }
        public DbSet<Attendance> Attendances { get; set; }
        public DbSet<PunchRecord> PunchRecords { get; set; }
    }