我有一個SQL(A)中的對象與另一個對象(B)有多對多的關係。我目前正在構建一個API層dll,允許用戶將類型B的對象分配到類型A中。現在,用戶將使用不同的LINQ數據上下文來檢索類型A的條目列表和類型B的條目列表。問題是與A相關的數據上下文將與B相關的數據上下文中的所有對象視爲新對象,並在我調用SubmitChanges()時嘗試插入它們。有沒有辦法告訴數據上下文A這些對象已經存在,不需要創建?我想編寫的代碼看起來是這樣的(我會打電話給服務和B輸出):更改LINQ對象數據上下文
List<Service> svcs = Service.GetServices();
List<Output> outs = Output.GetOutputs();
svcs[0].OutputCollection.Add(outs);
svcs[0].Save();
在我的例子中,每個服務對象都有到把它從數據庫中數據上下文的參照並且Save函數調用DataContext.SubmitChanges();上面的代碼會引發異常,因爲它試圖將已經存在的輸出添加回表中。
我知道這很長,我不確定我是否很好地解釋了我的問題。任何見解或建議都會有所幫助。
我在我的上下文中看不到分離方法。 – 2009-02-26 03:24:56