2012-02-17 11 views
0

私はSilverlightに注文入力システムを持っています。 OrdersとOrderItemの2つのテーブルがあります。 OrdersテーブルのOrderNoフィールドは自動インクリメントですが、OrderItemsテーブルのOrderNoフィールドは自動インクリメントではありません。SilverlightはOrderNoを生成しますか?

私が必要とするのは、顧客が注文を送信するたびに、orderitemテーブルのordernoもorderテーブルordernoで満たされる必要があります。

私が現在行っていることは、ordersテーブルに新しいレコードを追加し、インクリメントされた値を取得してorderitemレコードに使用することです。しかし、私はそうしたくないので、注文テーブルが更新されたときにこれらの値を同時に生成する必要があります。

+0

は、それらのテーブルのデータベース・テーブルはありますか?その場合、どのようにデータベースにアクセスしますか? –

+0

はいこれらはデータベーステーブルです.iはWCFを使用します。 – sony

+0

WCFはデータベースアクセス技術ではありません。 ADO.NET、EntityFramework、LINQ2SQLがあります。 –

答えて

1

挿入文をトランザクション内にラップします。既存のロジックと同じロジックを使用します(テーブルを個別に更新する)が、同じトランザクションでラップするので、データベースの観点からはアトミックな操作になります。したがって、何かがうまくいかず、ロールバックする必要がある場合、両方の挿入をロールバックし、トランザクション全体がコミットされるまで誰もオーダーに挿入を観察することができません。すでにEntity Frameworkのを使用している場合

EDIT

は、それはあなたがしたいトランザクション・スコープです。また、あなたがそれに就いている間は、Silverlight用のWCF RIA Servicesを真剣に検討することをお勧めします。これはデータベースサービスのための非常に良いフレームワークです。

第二編集 はここでRIAサービスのビデオだ:http://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/MID311

関連する問題