我有根據我的DataGridView生成記錄的代碼。這些記錄是臨時的,因爲它們中的一些已經存在於數據庫中。如何創建Linq-To-Sql類型的臨時記錄而不引起重複密鑰問題?
Crop_Variety v = new Crop_Variety();
v.Type_ID = currentCropType.Type_ID;
v.Variety_ID = r.Cells[0].Value.ToString();
v.Description = r.Cells[1].Value.ToString();
v.Crop = currentCrop;
v.Crop_ID = currentCrop.Crop_ID;
不幸的是在這個代碼點點,因爲我說v.Crop = currentCrop, 現在currentCrop.Crop_Varieties包括這個臨時記錄。當我插入這個新網格的記錄時,他們對同一個Crop記錄有一個引用,因此當我提交時,數據庫中已經存在的這些臨時記錄會顯示兩次,導致重複的鍵錯誤。
我有一個整體的系統,用於檢測記錄所需要的添加,需要基於什麼用戶操作的,而是通過引用的這個無情的跟蹤其越來越粘住了被刪除的內容。
有沒有一種方法,我可以從自動將這些臨時的記錄,它的表集合停止的LINQ到SQL?
你能解釋一下爲什麼你創建新的'Crop_Variety'實例,但不希望它們被持久化。還是你希望L2S在堅持它們之前找出哪些是重複的? –
我正在嘗試爲DataGridView中的所有記錄創建實例。並非所有數據都直接映射到datagridview,因此我不確定是否可以進行任何類型的自動更新/插入。 我完全重組了我的保存代碼,因爲這個問題一直在我當前的系統中出現,但是如果在處理網格行數據的時候有更好的方法來識別現有記錄和新記錄,那將非常棒。 –