我有以下实体(使用Entity Framework 5的pocos):
公司和应用程序之间存在多对多的关系。
有一家公司(没有从数据库加载的应用程序关系)和一组应用程序ID,我想清除公司的应用程序,并添加带有集合中指定的ID的应用程序。
我可以使用他们的id附加应用程序,而无需从数据库加载它们,如下所示:
foreach (int id in selectedApplications)
{
Application application = new Application() { Id = id };
_context.Applications.Attach(application);
company.Applications.Add(application);
}
_context.SaveChanges();
但我需要先清除应用程序关系。有没有办法清除多对多关系而不先从数据库加载它?
答案 0 :(得分:1)
这是唯一的方法。当您添加或删除项目时,必须加载company.Applications
,否则更改跟踪器将永远不会知道任何更改。
此外,联结表不是概念模型中的实体,因此无法在foreign key associations中设置原始外键属性。您必须通过对象集合访问关联。