如何在 Entity Framework 5 中删除联结表中的记录?

在对我的 DataContext 进行逆向工程时, Entity Framework 似乎已经识别出我的连接表并自动将集合添加到我的模型中以表示 M:M 关系。这在添加项目时很棒,因为我可以简单地构建我的整个实体,并且所有内容都可以正确插入。完美的。

但是,我很难摆脱关系。例如,一个 Activity 可以有多个与之关联的联系人,并且使用由以下列组成的联结表 (dbo.ActivityContacts) 进行链接:

  • 事件ID
  • ContactID

  • 我的 Activity 和 Contact 模型都已被 EF 更新为 Collections 以表示另一个。例如,我的事件模型如下所示:
        public class Activity
        {
            public int ActivityID { get; set; }
            public string Subject { get; set; }
            public virtual ICollection<Contacts> Contacts { get; set; }
        }
    

    在非 EF 环境中,我只需从联结表中删除记录,然后继续我的一天。但是,似乎我无法直接使用 EF 访问联结表,因此我对如何删除记录(关系)感到有些困惑。

    如何从 Entity Framework 中的联结表中正确删除记录?

    最佳答案

    同意@Chris。

    另一种解决方案是:

    context.Entry(activity).State = EntityState.Deleted;
    

    关于c# - 在 Entity Framework Code First (M :M)) 中删除联结表记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17538461/

    10-09 15:33