これは私の最初の投稿です。
データアクセス層として機能するWCFサービスを備えたMVC3でプログラムを作成しています。私のDALでは、ある種の「バッチ」挿入と更新を行う必要があります。特に、たとえば注文の場合、1つの注文に複数のアイテムがあり、複数の支払い方法などがあるとします。したがって、新しい注文を挿入すると、その注文に関連するすべてのアイテムを挿入する必要があります。
したがって、私が探しているのは、いくつかのストアドプロシージャを実行できる、より良い方法と実行可能な方法です。たとえば、注文を挿入するプロシージャ、アイテムを挿入するプロシージャなどです。
テーブルOrderとは、( fk)、(fk)、、。を持つ3番目のItemテーブルとリンクされています。Order_Itemsorder_iditem_idqtyprice
コマンドテキストを変更し、トランザクションで非クエリを実行することで複数のコマンドを実行できることはわかっていますが、テキストコマンドをハードコーディングする代わりにストアドプロシージャを実行したいです。または、コマンドテキストを次のように作成してプロシージャを実行できます。
cmd.CommandText = 'exec sp_insert_order @order_number @order_date ...'
cmd.ExecuteNonQuery();
次に、アイテムをループします
foreach (string s in insert_items)
{
cmd.CommandText = s;
cmd.ExecuteNonQuery();
}
これらすべてをトランザクション内で実行してからコミットします。しかし、これがこれほどクリーンな方法であるとは思いません。誰かが意見を共有してください。