这是我在这里的第一篇文章..
我正在用 MVC3 编写一个程序,它有一个充当数据访问层的 WCF 服务。在我的 DAL 中,我必须进行某种“批量”插入和更新。例如,尤其是订单。假设一个订单有多个项目,并且可能有多种付款方式等。所以当我插入一个新订单时,我'将需要插入与该订单相关的所有项目,依此类推..
因此,我正在寻找的是能够运行多个存储过程的更好的方法和可行的方法,例如一个将插入订单,另一个将插入其项目等。
表Order
和Item
与名为 的第三个表链接在一起,该表Order_Items
将具有 (fk) order_id
、 (fk) item_id
、qty
、price
..
我知道我可以通过更改命令文本并使用事务执行非查询来运行多个命令..但我想运行存储过程而不是硬编码文本命令..或者我可以通过使命令文本类似于
cmd.CommandText = 'exec sp_insert_order @order_number @order_date ...'
cmd.ExecuteNonQuery();
然后循环项目说
foreach (string s in insert_items)
{
cmd.CommandText = s;
cmd.ExecuteNonQuery();
}
所有这一切都在事务中,然后进行提交..但我不觉得这是一种如此干净的做事方式..有人可以分享他们的意见。