我有一个具有某些属性的实体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
时,将生成数据库和表,但不考虑属性。数据库中有FirstName
和LastName
的varchar(MAX),它可以为空。
我尝试使用流畅的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);
}
但结果相同。
知道为什么吗?
谢谢
答案 0 :(得分:3)
更新数据库:执行由Add-Migration命令创建的最后一个迁移文件,并将更改应用于数据库模式
无论何时更改域类,请使用name参数执行blob:https://web.whatsapp.com/b4fad564-5ff7-4fa3-b7ye-b8575a8f3297
以创建新的迁移文件,然后执行Update-Database命令以将更改应用于数据库架构。
Ref
答案 1 :(得分:0)
每次更改实体时,都需要通过运行Add-Migration
重新创建新迁移,以便在运行update-database
命令之前应用新迁移。
有关更多详细信息,请参阅此迁移的官方文档: