【发布时间】:2023-02-04 06:25:11
【问题描述】:
我有以下实体类(直接映射到 SQL Server 数据库表)
public class PROCESSCARD : BaseClass
{
[Key]
[Display(Name = "Card No")]
public String ProcessCardID { get; set; }
[Display(Name = "Entry Date")]
public DateTime EntryDate { get; set; }
[Display(Name ="Job Type")]
public String JobType { get; set; }
[Display(Name = "Job / Non Job")]
public String JobNonJob { get; set; }
[Display (Name = "Cost Booking")]
public String CostBooking { get; set; }
[Display(Name = "Planned Hrs/Qty")]
public Decimal? PlannedHours { get; set; }
}
上面的类继承自 BaseClass 如下
public class BaseClass
{
[NotMapped]
public String StatusMessage { get; set; }
}
现在到此为止没有问题,一切都很好, 但我正在将实体 PROCESSCARD 的已删除数据存储到 PROCESSCARD_HIST,并且我想向用户显示已删除的历史数据。 两个实体的结构(PROCESSCARD 和 PROCESSCARD_HIST 相同)所以我创建了另一个实体类 PROCESSCARD_HIST,为了避免重复成员,我从 PROCESSCARD 继承了 PROCESSCARD_HIST,
public class PROCESS_CARD_HIST : PROCESS_CARD
{
}
但是现在当我尝试从 PROCESSCARD_HIST 类访问数据时,它会抛出类似“无效的列名‘鉴别器’”的错误, 知道我如何实现这一目标吗?
【问题讨论】:
-
您的数据库 DTO 不是您的业务模型实体。 ORM 中的继承意味着表之间的关系 - 1) 同一个表中的所有子类型都带有鉴别器列 2) 所有类型都在单独的表中或 3) 一个表中的基本类型和每个类型单独表中的所有额外列
标签: entity-framework asp.net-core entity-framework-core