1

Entity Framework を使用する asp.net Web アプリケーションがあります。アプリケーション データ層は、ここにある Jordan Van Gogh によって概説された方法を使用します。 簡単に言うと、このメソッドは、http 要求ごとに 1 つの共有 objectcontext インスタンスを使用し、IHttpModule を継承する AspNetObjectContextDisposalModule を使用して破棄されます。

別のプロジェクト、いくつかの追加のテーブルを追加し、上記の例を (正確に) アプリケーションにコピーするデータ レイヤーをセットアップしました。この追加プロジェクトとそれに続くさまざまなデータ モデルはすべて完全に機能します。一見何の影響もなく、2 つのデータ レイヤーを使用してさまざまな操作を実行できます。もちろん、2 つのデータ レイヤーは異なるテーブルを表すため、オブジェクトセットは異なります。

私の質問はこれです:

このアプローチは良い考えですか?バックグラウンドで行われていることのほとんどを把握していますが、これらのモデルはどちらも System.Data.Objects.ObjectContext を使用しています。ユーザー A が最初のデータ レイヤーを使用して操作を実行し、同時にユーザー B が 2 番目のデータ レイヤーを使用して操作を実行した場合、「共有」オブジェクト コンテキストで問題が発生しますか?

ありがとう。そして優しく。

編集 注:別のocキーを使用しています

4

1 に答える 1

1

あなたは大丈夫なはずです:

  • オブジェクト コンテキストは http 要求ごとであるため、異なるユーザーからのコンテキストが互いに干渉することはありません。
  • 各コンテキストは異なるテーブルを更新するため、互いに干渉しません。

注意しなければならないことの 1 つは、2 人のユーザーが同じデータを同時に更新するとどうなるかということです。

于 2010-10-23T22:51:28.340 に答える