【问题标题】:Table-per-Hierarchy inheritance in Entity Framework 7Entity Framework 7 中的每层次结构表继承
【发布时间】:2016-02-09 02:48:12
【问题描述】:

我正在使用 Entity Framework beta 8 和 Code First 来处理 SQLite 数据库。

我需要 TPH 继承,但默认情况下它使用 TPT 继承。

这是我的代码的一部分:

 public abstract partial class Amenity
 {
    [Key]
    public int AmenityId { get; set; }
    public string AmenityName { get; set; }
 }

 public class AmenityCountable : Amenity
 {
    public int AmenityMinValue { get; set; }
    public int AmenityMaxValue { get; set; }
    public string AmenityTypeName { get; set; }
 }

 public class AmenityOptionable : Amenity
 {
    public bool CanHaveMultipleValues { get; set; }
 }

 public class KMContext : DbContext
 {
    public virtual DbSet<Amenity> Amenities { get; set; }
    public virtual DbSet<AmenityCountable> AmenityCountable { get; set; }
    public virtual DbSet<AmenityOptionable> AmenityOptionable { get; set; }
 }

如何修改它以使其使用 TPH 继承?

【问题讨论】:

  • 没有使用 EF7 的经验,但在 EF6 中,我们使用 ToTable 进行 TPH 映射。尝试使用 [Table("Amenity")] 属性标记 AmenityCountable 和 AmenityOptionable 类。
  • @3615 我试过了,但是在使用 Add-Migration 时出现以下错误:“不能在模式 '' 中为实体 'AmenityCountable' 使用表 'Amenity',因为它正在用于另一个实体。 "

标签: c# .net entity-framework inheritance entity-framework-core


【解决方案1】:

TPH 将在 RC 版本中提供

请参阅github entityframework 了解 TPH

【讨论】:

    猜你喜欢
    • 2023-04-09
    • 1970-01-01
    • 2014-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-16
    相关资源
    最近更新 更多