ASP.NET Core ApiAuthorizationDbContext 没有为数据模型创建表
Posted
技术标签:
【中文标题】ASP.NET Core ApiAuthorizationDbContext 没有为数据模型创建表【英文标题】:ASP.NET Core ApiAuthorizationDbContext not creating table for data model 【发布时间】:2022-01-06 20:58:15 【问题描述】:我是 ASP.NET Core 的新手。当我创建启用了 ASP.NET Identity 的项目时,会自动为我创建一个 ApplicationDbContext
模板。
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
public ApplicationDbContext(
DbContextOptions options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
现在,我还希望ApplicationDbContext
自动为我自己的数据模型创建表。
public class Student
public int Id get;set;
public string name get; set;
我应该这样做吗?但这对我不起作用。
public class ApplicationDbContext : ApiAuthorizationDbContext<ApplicationUser>
public ApplicationDbContext(
DbContextOptions options,
IOptions<OperationalStoreOptions> operationalStoreOptions) : base(options, operationalStoreOptions)
public DbSet<Student> students;
protected override void OnModelCreating(ModelBuilder modelBuilder)
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<Student>().ToTable("Student");
或者我应该创建另一个DbContext
来使用我自己的自定义数据模型吗?
【问题讨论】:
【参考方案1】:首先,别忘了使用get;set;
public DbSet<Student> Students get; set;
然后你需要将这一行运行到你的package manager console
add-migration addStudentsTable
它将为您创建此迁移
protected override void Up(MigrationBuilder migrationBuilder)
migrationBuilder.CreateTable(
name: "Students",
columns: table => new
Id = table.Column<int>(nullable: false)
.Annotation("SqlServer:Identity", "1, 1"),
name = table.Column<string>(nullable: true)
,
constraints: table =>
table.PrimaryKey("PK_Students", x => x.Id);
);
protected override void Down(MigrationBuilder migrationBuilder)
migrationBuilder.DropTable(
name: "Students");
然后运行这一行也更新数据库
update-database
【讨论】:
谢谢,所以每次我更新数据模型时,我都需要运行迁移? 不客气。是的,完全正确。以上是关于ASP.NET Core ApiAuthorizationDbContext 没有为数据模型创建表的主要内容,如果未能解决你的问题,请参考以下文章
Asp.NET Core进阶 第四篇 Asp.Net Core Blazor框架
.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介
深入研究 Mini ASP.NET Core(迷你 ASP.NET Core),看看 ASP.NET Core 内部到底是如何运行的
.Net Core 学习 - ASP.NET Core 概念学习
ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 14. ASP.NET Core Identity 入门