我有一個實體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在將聯繫人關聯附加到上下文時修改聯繫人關聯,以便確定哪些新聯結記錄需要插入?
您應該顯示用於執行修改的代碼。 –