繁体   English   中英

在EF中使用继承时如何包含属性?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM