我想嘗試插入到我的SQL Server數據庫中的多個表中,但是我的第一個插入生成的外鍵是IDENTITY值,我想在我的後續插入。我不知道我在LINQ to SQL中如何處理這個問題。我認爲我可以在多次交易中做到這一點,但我更喜歡在一個地方做這個......也就是在使用條款中。從前面的插入使用IDENTITY的多個LINQ to SQL插入
我的僞代碼算法如下:
- 檢查ID值TABLE1.COL2列中存在
- 如果它不存在,則插入新行到TABLE1
- 獲取外鍵TABLE1.COL1列中新插入的行的值。
使用新的外鍵值創建對象並更新TABLE2。
using (var sms = new SmsDataDataContext(connection_string) { foreach(SomeObject i in ListofObject) { TABLE1 t1 = CheckID(sms, i.ID); if (t1== null) { TABLE1 new_row = new TABLE1(); sms.TABLE1.InsertOnSubmit(new_row); //Ideally I want to do something like this even though i dont think it will work. sms.SubmitChanges(); TABLE2 update_row = new TABLE2(); update_row.ID = new_row.COL1.value; //has the newly created identity value from my last insert. //Assume this update_row exist in my TABLE2 table. sms.TABLE2.InsertOnSubmit(update_row); } } sms.SubmitChanges(); }