ASP.NET Core中ApiAuthorizationDbContext无法为自定义模型创建表如何解决
你没有生效的原因是DbSet的定义不符合EF Core的要求,不需要单独创建新的DbContext,直接修改现有配置即可,调整步骤如下:
- 第一步:修正DbSet的定义,EF Core只会识别上下文内的公共属性作为实体集,你现在写的是没有访问器的字段,EF Core不会扫描。将对应代码修改为:
// 注意加 {get;set;} 变成属性,推荐使用帕斯卡命名法首字母大写 public DbSet<Student> Students { get; set; }
- 第二步:添加实体迁移。修改完上下文代码后需要显式生成迁移脚本,执行以下命令即可:
如果你使用Visual Studio包管理器控制台:Add-Migration AddStudentTable
如果你使用dotnet CLI命令行:dotnet ef migrations add AddStudentTable - 第三步:将迁移应用到数据库,执行以下命令:
包管理器控制台:Update-Database
dotnet CLI:dotnet ef database update
你现有代码里OnModelCreating的配置是正确的,执行完上述步骤后就会自动生成名为Student的表,不需要额外拆分DbContext,ApiAuthorizationDbContext本身就支持扩展自定义业务实体,完全可以同时承载Identity相关表和自定义业务表的映射。
内容的提问来源于stack exchange,提问作者Mike Deng
相关产品推荐
相关产品推荐

