使用Linq,ASP.NET MVC插入多个数据库表

Tri*_*ete 8 asp.net-mvc linq-to-sql

我有一个相当简单的场景,我有两个表,我想在其中添加数据.它们使用主键/外键进行管理.我想在表A中添加新数据,然后检索Id并插入表B.

我当然可以使用存储过程来完成它,但我正在尝试使用Linq来完成它.

什么是最好的方法?

我当然可以得到ID并做两个单独的插入,但这似乎不是一个非常好的做事方式.

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

Int32 id = dbOject.Id;

//Rest of the code
Run Code Online (Sandbox Code Playgroud)

任何方式优雅地做到这一点?

Big*_*714 13

您是否在对象关系设计中的两个表之间定义了关系?如果是这样,你可以让linq自动分配第二个表的ID属性.

示例...
表A - 订单
OrderId
OrderDate

表B - 订单项
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();
Run Code Online (Sandbox Code Playgroud)