[英]How to include properties when using inheritance in EF?
我正在尝试在EF中使用继承,并提出了以下内容(简化):
public abstract class Job
{
public int Id { get; set; }
public DateTime ScheduledTime { get; set; }
}
[Table("InstallationJobs")]
public class InstallationJob : Job
{
public PbnSite Site { get; set; }
}
我的dbcontext具有以下内容:
public DbSet<Job> Jobs { get; set; }
现在,我正在尝试获得一份随机工作(之前已插入):
var job = _dbContext.Jobs.OrderBy(x => x.ScheduledTime).FirstOrDefault();
//logic to find out which job time was retrieved and then get the specific information
这样就返回了工作! 但是,当我将作业转换为正确的作业类型(在此示例中为InstallationJob)时,它没有关于Site属性的任何信息。 (因为我没有包含它)。
但是如果乔布斯是一个通用表,我将如何将其包括在内?
当作业为子类型XI时,希望包含X的属性;当作业为YI时,希望包含Y的属性。
您可以使用OfType
方法获取派生对象
var job = _dbContext.Jobs.OrderBy(x => x.ScheduledTime)
.OfType<InstallationJob >
.FirstOrDefault();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.