我想在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)時,它沒有關於「網站」屬性的任何信息。 (因爲我沒有包括它)。
但是,我將如何去包括它看到喬布斯是一個通用的表?
當作業childtype十一要包括X的性能,當它是YI的要包括Y.
的性質
我會離開對更有經驗的人的回答,因爲我認爲桌面perheirarchy是默認的(你在做代碼優先,對嗎?),應該用你擁有的東西來實現(基於:http:// weblogs。 asp.net/manavi/inheritance-mapping-strategies-with-entity-framework-code-first-ctp5-part-1-table-per-hierarchy-tph)你當然可以用dbSet 並移動到每種類型的表,但它應該默認爲前者? – 2014-10-29 23:27:39