首页 > 解决方案 > 实体框架核心,更新数据库不考虑属性

问题描述

我有一个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);
}

但同样的结果。

知道为什么吗?

谢谢,

标签: c#.netentity-framework-core

解决方案


Update-Database:执行 Add-Migration 命令创建的最后一个迁移文件并将更改应用于数据库架构

每当您更改域类时,Add-Migration使用 name 参数执行以创建新的迁移文件,然后执行 Update-Database 命令以将更改应用到数据库模式。 参考


推荐阅读