可以說,我有一個表RowId的和值:LINQ獲取下一行ID?
1 valueA
2 valueB
3 valueC
4 valueD
然後讓我們說我刪除第4行:
1 valueA
2 valueB
3 valueC
所以下一行ID將是5。由於第4行被刪除,我不能簡單地找到表中的最後一行,並加1以獲得下一行ID。我如何獲得下一行ID?
謝謝!
可以說,我有一個表RowId的和值:LINQ獲取下一行ID?
1 valueA
2 valueB
3 valueC
4 valueD
然後讓我們說我刪除第4行:
1 valueA
2 valueB
3 valueC
所以下一行ID將是5。由於第4行被刪除,我不能簡單地找到表中的最後一行,並加1以獲得下一行ID。我如何獲得下一行ID?
謝謝!
在LinqToSQL,如果兩個類有一個主鍵IDENTITY列,並有連接的關聯(通過的Fkey數據庫或手動在設計器創建),你可以做你的兩個相關項目插入這樣的:
Customer c = new Customer() {Name = "Bob"};
Order o = new Order() {Customer = c, Quantity = 5};
myDataContext.InsertOnSubmit(c);
//submit changes will insert c and o
// in the right order and with all id's populated.
myDataContext.SubmitChanges();
//the id's are populated
int customerID = c.CustomerID;
int orderID = o.OrderID;
customerID = o.CustomerID;
+1 - 讓Linq-to-SQL處理所有這些混亂的細節,不用擔心會提前猜測ID! – 2010-05-26 21:01:17
我想如果你想插入兩個對象,你必須要插入(o)。 c不參考o。對? – 2010-05-26 21:06:08
c通過關聯創建的訂單屬性引用o。這個相同的關聯創建了Order.Customer屬性。 – 2010-05-26 21:06:48
插入新行後,您將獲得行ID。我不明白你爲什麼需要它,然後再插入它!
爲什麼你需要知道下一個自動生成的ID是什麼? – Jimmy 2010-05-26 20:37:57
這是在向表格中插入新行時創建表關係。 – sooprise 2010-05-26 20:40:46
這應該通過SQL自動處理。研究設置自動遞增的主鍵。否則,只要獲得最後一條記錄並執行+1即可,儘管這並不理想 – Jimmy 2010-05-26 20:43:42