【发布时间】:2012-02-26 12:16:29
【问题描述】:
这是我在这里的第一篇文章..
我正在用 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();
}
所有这些都在一个事务中然后进行提交.. 但我不觉得这是一种如此干净的做事方式.. 有人可以分享他们的意见吗。
【问题讨论】:
-
欢迎使用 StackOverflow:如果您发布代码、XML 或数据示例,请在文本编辑器中突出显示这些行并单击“代码示例”按钮 (
{ }) 在编辑器工具栏上很好地格式化和语法突出显示它!
标签: wcf asp.net-mvc-3 stored-procedures data-access-layer batch-insert