1

我有以下实体(使用实体框架 5 的 pocos):

  • 公司:ID,名称,应用程序等。
  • 应用:ID、姓名等

公司和应用程序之间存在多对多的关系。

拥有一家公司(没有从数据库加载的应用程序关系)和一组应用程序 ID,我想从公司清除应用程序并添加具有在集合中指定的 ID 的应用程序。

我可以使用它们的 id 附加应用程序,而无需从数据库中加载它们,如下所示:

foreach (int id in selectedApplications)
{
    Application application = new Application() { Id = id };
    _context.Applications.Attach(application);
    company.Applications.Add(application);
}
_context.SaveChanges();

但我需要先清除应用程序关系。有没有办法在不先从数据库加载的情况下清除多对多关系?

4

1 回答 1

1

这是唯一的办法。company.Applications必须在添加或删除项目时加载,否则更改跟踪器将永远不会知道任何更改。

此外,联结表不是概念模型中的实体,因此无法像在外键关联中那样设置原始外键属性。您必须通过对象集合访问关联。

于 2013-05-24T14:57:15.223 回答