Asp.net-Mvc

使用 Linq、ASP.NET MVC 插入多個數據庫表

  • June 13, 2012

我有一個相當簡單的場景,我有兩個要在其中添加數據的表。它們使用主鍵/外鍵進行管理。我想將新數據添加到表 A 中,然後檢索 Id 並插入到表 B 中。

我當然可以使用儲存過程來做到這一點,但我正在考慮嘗試使用 Linq 來做到這一點。

最好的方法是什麼?

我當然可以獲取 ID 並進行兩次單獨的插入,但這似乎並不是一種很好的做事方式。

db.Table.InsertOnSubmit(dbObject);
db.SubmitChanges();

Int32 id = dbOject.Id;

//Rest of the code

有什麼方法可以優雅地做到這一點?

您是否在設計的對象關係中定義了兩個表之間的關係?如果是這樣,您可以讓 linq 自動分配第二個表的 ID 屬性。

範例…

表 A – Order

OrderId

OrderDate

表 B – Order Item

OrderItemId

OrderId

ItemId

程式碼(使用 LINQ-to-SQL):

Order order = new Order();
Order.OrderDate = DateTime.Now();
dataContext.InsertOnSubmit(order);

OrderItem item1 = new OrderItem();
Item1.ItemId = 123;
//Note: We set the Order property, which is an Order object
// We do not set the OrderId property
// LINQ will know to use the Id that is assigned from the order above
Item1.Order = order;  
dataContext.InsertOnSubmit(item1);

dataContext.SubmitChanges();

引用自:https://stackoverflow.com/questions/287594