我有一个实体BusinessUnit,它与Contact实体有多对多的关系。我们使用流利的配置按照下面的示例:EF 4.1代码优先:触发更新多对多
public BusinessUnitConfiguration()
{
HasMany(c => c.Contacts)
.WithMany()
.Map(m =>
{
m.ToTable("BusinessUnitContact");
m.MapLeftKey("BusinessUnitId");
m.MapRightKey("ContactId");
});
ToTable("BusinessUnit");
}
public ContactConfiguration()
{
ToTable("Contact");
}
联系人实体不知道什么父母它可能与。我们使用Silverlight + WCF,所以懒惰的加载和代理创建被禁用。
我们在客户端上创建或修改一个由BusinessUnit实例和零个或多个Contact实例组成的对象图,然后发送给WCF服务进行保存,在此创建新的上下文,并根据需要添加/附加/删除在保存更改之前。
的问题是,如果我添加新的联系人通讯录收集现有业务单元,EF不会插入接线纪录 - 它知道要添加新的联系人,因为我已经添加了它,而不是BusinessUnitContact行将业务单位映射到联系人。
BusinessUnit上的Contacts属性是一个ObservableCollection < Contact>。它在添加父业务单位时起作用,但在附加时不起作用。
有没有一种方法可以告诉EF在将联系人关联附加到上下文时修改联系人关联,以便确定哪些新联结记录需要插入?
您应该显示用于执行修改的代码。 –