【发布时间】:2023-03-17 18:26:01
【问题描述】:
我有三个班级:
public class Person
{
public string Name { get; set; }
public Guid Guid { get; set; }
}
public class Student : Person
{
public string DOB { get; set; }
}
public class Teacher : Person
{
}
我想按要求制作字符串 DOB,我正在这样做:
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Person>().HasKey(d => d.Guid);
modelBuilder.Entity<Student>().Property(d => d.DOB).IsRequired(true);
modelBuilder.Entity<Teacher>();
base.OnModelCreating(modelBuilder);
}
在 SQL EF Core 中生成可为空的列:
当 DOB 为空时允许保存数据:
MainContext mainContext = new MainContext();
mainContext.Add(new Student() { DOB = null });
mainContext.SaveChanges();
但是,它在没有继承的情况下工作。是 EF Core 问题还是我在模型映射中遗漏了什么?
编辑:我将DateTime? 替换为string,因为问题与属性类型无关
【问题讨论】:
-
请支持 EF Core 问题#2595。
标签: c# sql-server entity-framework-core ef-core-3.1