EF TPT继承 - 映射1-M相关表

时间:2016-11-04 03:29:43

标签: c# entity-framework entity-framework-6

您好我在EF中使用TPT继承。我有BaseClass = AspNetUser。 SubClasses =雇主和雇员。我想添加一个与AspNetUser具有1-M关系的Document类,这样您就只能看到自己的文档了。例如,当我尝试从雇主屏幕添加文档时,我想将一个项目添加到雇主文档集合中。但它没有向数据库添加记录。将项目添加到此集合的正确方法是什么。你必须导航到基类? 我希望能够做这样的事情

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

enter image description here

1 个答案:

答案 0 :(得分:1)

首先在AspNetUser类中,在构造函数中初始化集合Documents,如下面的代码所示。如果你正在使用Database First方法,那么这已经由EDMX完成了:

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

其次,要在Documents集合中添加新文档,请执行以下操作:

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

确保从Employee

中检索DbContext个实例