可选 属性 但需要输入

Optional Property but Required Input

在我的特定情况下,我从遗留应用程序导入数据。在新应用程序中,我有一个旧应用程序中不存在的模型 属性 (GradYear)。出于历史目的,我需要将数据从遗留数据库导入新数据库。但是,在新应用程序中 GradYearrequired

使用 EF Core 和 Razor Pages,有没有办法让 GradYear 在呈现的输入文本框级别是必需的,但在数据库架构中是可选的?

我可以考虑这个可能的解决方案:

  1. 使用 2 种不同的视图模型,一种用于从具有非必填字段的旧版导入,另一种用于具有必填属性的内部新应用程序使用,您只需要确保在映射时分配默认值的非必需视图模型到 DBContext 实体。

另一种方法(未测试)是根据需要装饰您的 属性 但像这样重写 OnModelCreating :

public class YourAppContext : DbContext
{
   protected override void OnModelCreating(DbModelBuilder modelBuilder)
   {
      ...
      modelBuilder.Entity<YourDbContextEntity>.Property(p => p.GradYear).IsOptional();
      ...
   }

}