在WPF應用程序中,我在多層應用程序中使用Linq to SQL。Linq to SQL EntitySet導致重複插入的記錄
(這是一個古文字照片歸檔應用程序),所以每個挖掘都有其相應的圖片,因此是一對多的關係。這種關係是由SQLMetal(我用來創建POCO)正確創建的。
因此,這裏是我在遇到問題的情況:
儲蓄變化(無論是新的或改變的對象)通過的UnitOfWork()完成模式是這樣的:
using (IUnitOfWork unitOfWork = UnitOfWork.Begin())
{
//if this is a new record
if (SelectedExcavation.excavation.ExcavationId == 0)
{
IsNewRecord = true;
excavService.Add(SelectedExcavation.excavation);
}
//send the actual changes to the dbms
unitOfWork.Commit();
}
一切正常!
BUTTTT !!!
1)一種新的開挖記錄被插入
2)當前開挖記錄得到更新
3:對應圖片記錄
每當記錄被更新,其具有(已經至少一個) )之前的圖片記錄將其ID更改爲新創建的ExcavationId
發生了什麼情況? Linq to SQL不處理這種簡單的更新場景嗎?
預先感謝
我有種感覺abo完成您的UnitOfWork模式作業,以及如何處理多層Linq 2 Sql?你附加()該對象並更新它?或再次查詢數據庫並使用從某處獲得的實例更改值! – 2009-12-18 12:33:35
其實我什麼也沒做! 附加只給出錯誤!我確信Entityset正在造成這種行爲,但不知道如何處理這個問題! – 2009-12-18 18:15:28