2016-11-04 91 views
1

您好我正在EF中使用TPT繼承。我有BaseClass = AspNetUser。子類=僱主和員工。我想添加一個與AspNetUser具有1-M關係的Document類,以便您只能看到自己的文檔。例如,當我嘗試從Employer屏幕添加文檔時,我想將項目添加到Employer文檔集合。它不是向數據庫添加記錄。什麼是添加項目到這個集合的正確方法。你必須導航到基類嗎? 我希望能夠做這樣的事EF TPT繼承 - 映射1-M相關表格

var avatar = new Document {...}    
employer.Documents = new List<Document> { avatar }; 
db.Entry(employer).State = EntityState.Modified; 
db.SaveChanges(); 

enter image description here

回答

1

首先在AspNetUser類,初始化集合Documents像下面的代碼構造。如果您使用數據庫第一種方法那麼這已經被EDMX來完成:

public AspNetUser() 
{ 
    this.Documents = new List<Documents>(); 
} 

其次,添加新的文件在你的Documents收集只是這樣做:

var avatar = new Document {...}    
employer.Documents.Add(avatar); 
db.SaveChanges(); 

確保您從您的DbContext中檢索您的Employee實例。