我有一个相当简单的场景,我有两个表,我想在其中添加数据.它们使用主键/外键进行管理.我想在表A中添加新数据,然后检索Id并插入表B.
我当然可以使用存储过程来完成它,但我正在尝试使用Linq来完成它.
什么是最好的方法?
我当然可以得到ID并做两个单独的插入,但这似乎不是一个非常好的做事方式.
db.Table.InsertOnSubmit(dbObject); db.SubmitChanges(); Int32 id = dbOject.Id; //Rest of the code
任何方式优雅地做到这一点?
您是否在对象关系设计中的两个表之间定义了关系?如果是这样,你可以让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();