【问题标题】:EF Core HasDiscriminator with nullable discriminator具有可为空鉴别器的 EF Core HasDiscriminator
【发布时间】:2016-10-02 08:29:04
【问题描述】:

我试图指定我已经在实体上有一个鉴别器,但我不确定如何在这里表示它。

它们之间的区别是列是否为空。显然它为空的情况我可以明确地说出来,但是对于它不为空的情况我该怎么办?

protected override void OnModelCreating(ModelBuilder modelBuilder) {
    modelBuilder.Entity<Schedule>()
        .HasDiscriminator<Guid?>("ManagerId")
        .HasValue<EmployeeSchedule>(null)
        .HasValue<ManagerSchedule>(/* What goes here? */);
}

【问题讨论】:

    标签: c# entity-framework ef-code-first asp.net-core entity-framework-core


    【解决方案1】:

    通过将属性bool IsManagerSchedule 放在Schedule 上,然后使用.HasValue&lt;ManagerSchedule&gt;(true).HasValue&lt;EmployeeSchedule&gt;(false); 来解决它。

    【讨论】:

      【解决方案2】:

      尝试删除手动配置,然后:

      public class EmployeeSchedule {
          // properties of all employees...
      }
      
      public class ManagerSchedule {
          public TYPE PropertyName {get; set;} // discriminator property
      }
      

      【讨论】:

        猜你喜欢
        • 2022-10-17
        • 2018-11-18
        • 2022-06-30
        • 1970-01-01
        • 2019-05-09
        • 2017-06-20
        • 2012-09-11
        • 1970-01-01
        • 2023-02-08
        相关资源
        最近更新 更多