2011-09-15 11 views
3

私は何らかの処理をしてデータベースに書き込むC#コンソールアプリケーションを持っています。私はそれを少し異なったことをするために異なる設定の設定でサーバに複数回配備しました。ただし、Linq to Entitiesを使用して、同じデータベースに書き込む必要があります(存在しない場合は、同じデータを同じテーブルに挿入する必要があります)。LinqからEntitiesにデータベースにアクセスする異なるC#アプリケーション

スレッドを使用していた場合、メソッドやストアドプロシージャをロックすることができましたが、書き込みをキューに入れて衝突を避けることができますが、これらを別々のアプリケーションとして保持し、同じ時間にデータベースに?

競合が発生した場合は、例外が頻繁に発生します。

編集:

私は必ずしもこれ等を行うための「ベストプラクティス」の方法の任意の提案のためのより多くのを見て、私は例外を取得していますなぜデバッグするつもりはありませんよこれは、コンソールアプリレベル、L2Eレベル、またはデータベースレベルで処理する必要があります。

+2

...を取得していますか?例外?それは何と言いますか? – spender

+0

現時点では、いくつかのフレンドリーなエラーテキストの中に隠されています。)正確なエラーメッセージを見つけようとします。 – finoutlook

+1

@Ilya Smagin - LINQ to Entity to LINQ to SQL ... – finoutlook

答えて

3

ロックがサーバー側でアクティブになるように、高い分離レベルのトランザクションを開始できないのはなぜですか?

2

あなたは、並行性の問題に対処するためにロック(ペシミスティック並行モデル)またはタイムスタンプ(オプティミスティック並行モデル)を使用することができます。

これは非常に幅広い話題なので、まずデータベースの並行性をグーグルで調べることをお勧めします。

関連する問題