c# - 实体框架核心,更新数据库不考虑属性
问题描述
我有一个PersonEntity
具有某些属性的实体
public class PersonEntity
{
[Required]
[MaxLength(50)]
public string FirstName { get; set; }
[Required]
[MaxLength(50)]
public string LastName { get; set; }
[Key]
public int Id{ get; set; }
}
当我做update-database -verbose
数据库和表生成但不考虑属性时。数据库中有 varchar(MAX) ,FirstName
并且LastName
它可以为空。
我尝试使用流利的 API(我删除了属性)
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<PersonEntity>()
.ToTable(nameof(this.Customer))
.HasKey(e => e.Id);
modelBuilder.Entity<PersonEntity>()
.Property(t => t.LastName)
.IsRequired()
.HasMaxLength(50);
modelBuilder.Entity<PersonEntity>()
.Property(t => t.FirstName)
.IsRequired()
.HasMaxLength(50);
base.OnModelCreating(modelBuilder);
}
但同样的结果。
知道为什么吗?
谢谢,
解决方案
Update-Database:执行 Add-Migration 命令创建的最后一个迁移文件并将更改应用于数据库架构
每当您更改域类时,Add-Migration
使用 name 参数执行以创建新的迁移文件,然后执行 Update-Database 命令以将更改应用到数据库模式。
参考
推荐阅读
- javascript - 您如何配置 HERE Maps Javascript 以自动设置所需的缩放值?
- performance - 我收到一个令牌错误,但在脚本中令牌正在通过并且 API 正在失败
- segmentation-fault - 使用堆栈时出现分段错误,但使用堆时可以正常工作?
- apache-spark - 我们可以使用 spark from_json 来解析联合类型的字段吗?
- regex - 正则表达式来挑选单词/字符之间的关键信息
- ios - 如何处理从另一个应用程序共享到我自己的 iOS 应用程序的文件?
- javascript - 如何使用 Javascript 滚动到页面底部但使用 selenium c# 有一些延迟
- java - 如何将一个数组的元素插入第二个数组?
- javascript - 从反应项目中分离firebase实时数据库
- next.js - 在带有 ISR 和 SWR 的 nextjs 应用程序中使用反冲设置初始状态