C# 具有抽象泛型基类的实体框架6每类型代码第一个表(TBT)-列错误无效

C# 具有抽象泛型基类的实体框架6每类型代码第一个表(TBT)-列错误无效,c#,generics,entity-framework-6,code-first,table-per-type,C#,Generics,Entity Framework 6,Code First,Table Per Type,我有以下数据库表: CREATE TABLE [dbo].[Batches] ( [Id] INT IDENTITY (1, 1) NOT NULL, [BatchTypeId] INT NOT NULL, [CreatedDate] DATETIME NOT NULL, [CreatedBy] VARCHAR (100) NOT NULL, CONSTRAINT [PK_Batche

我有以下数据库表:

CREATE TABLE [dbo].[Batches] (
    [Id]          INT           IDENTITY (1, 1) NOT NULL,
    [BatchTypeId] INT           NOT NULL,
    [CreatedDate] DATETIME      NOT NULL,
    [CreatedBy]   VARCHAR (100) NOT NULL,
    CONSTRAINT [PK_Batches] PRIMARY KEY CLUSTERED ([Id] ASC),
    CONSTRAINT [FK_Batches_BatchTypes] FOREIGN KEY ([BatchTypeId]) REFERENCES [dbo].[BatchTypes] ([BatchTypeId])
);

CREATE TABLE [dbo].[PayrollDiscrepancyBatches]
(
    [Id] INT NOT NULL 
    CONSTRAINT PK_PayrollDiscrepancyBatches_Batches PRIMARY KEY (Id),
    CONSTRAINT FK_PayrollDiscrepancyBatches_Batches FOREIGN KEY (Id) REFERENCES Batches (Id)
)
我正在尝试使
批处理
实体对象成为通用对象。以下是我为
批处理
类准备的内容:

public abstract class Batch<TBatchRequest, TBatchSummary>
        where TBatchRequest : BatchRequest 
        where TBatchSummary : BatchSummary {

        [Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int Id { get; set; }

        public BatchTypeEnum BatchTypeId { get; set; }

        public DateTime CreatedDate { get; set; }

        [StringLength(100), Required]
        public string CreatedBy { get; set; }

        public virtual ICollection<TBatchSummary> Summaries { get; set; } = new List<TBatchSummary>();

        public virtual ICollection<TBatchRequest> Requests { get; set; } = new List<TBatchRequest>();

        public virtual ICollection<BatchExport> Exports { get; set; } = new List<BatchExport>();
}
从错误消息中显示的无效列数来看,EF似乎将此关系视为每种具体类型的
表。考虑到这一点,我在重写的
OnModelCreating
方法中添加了以下内容:

modelBuilder.Entity<PayrollDiscrepancyBatch>()
            .Map(m => m.MapInheritedProperties().ToTable("Batches"))
            .HasKey(m => m.Id); 
在这一点上,我不知所措。我的基类是泛型的这一事实是否导致了我的问题?如果是这样的话,有人知道如何解决这个问题吗?也许我需要另一个表,
batchbase
,它将是一个抽象的
非泛型的
类,它是
Batches
继承的

任何洞察都将不胜感激

public virtual DbSet<PayrollDiscrepancyBatch> PayrollDiscrepancyBatches { get; set; }
Message: Invalid column name 'PayrollDiscrepancyBatch_Id'.
Invalid column name 'BatchTypeId'. Invalid column name 'CreatedDate'.
Invalid column name 'CreatedBy'. Invalid column name
'PayrollDiscrepancyBatch_Id'.
modelBuilder.Entity<PayrollDiscrepancyBatch>()
            .Map(m => m.MapInheritedProperties().ToTable("Batches"))
            .HasKey(m => m.Id); 
Invalid column name 'PayrollDiscrepancyBatch_Id'