1

バリデーターやヘルパーなどから簡単に取得できるように、アクティブなエンティティ フレームワークのデータベース コンテキストをリクエストの静的プロパティとしてどこかに保存できますか?

**EG は、グローバル アクション フィルターから静的クラスに次のように設定します。

public static DBContext GlobalHelper.ActiveDbContextForRequest;

ただし、各リクエストはこれらの静的プロパティを共有しますか? もしそうなら、それはうまくいかないと思います。

4

2 に答える 2

3

はい、静的変数はアプリケーション全体で (すべてのスレッドで) 共有されます。さまざまなリクエストからの同期なしでは、これらの変数に安全にアクセスすることはできません (各リクエストは異なるスレッドで処理されるため)。

これらの変数へのアクセスを同期したとしても、静的変数のインスタンスは 1 つしかないため、すべてのスレッドが同じ値を参照します。このように要求固有の値を持つことはできません。

于 2013-08-29T23:25:00.790 に答える
1

静的変数は、デフォルトでアプリケーション ドメイン全体に対してグローバルであるため、答えはイエスです。静的変数は、それによって処理されるすべてのリクエストで共有されます。

于 2013-08-29T23:24:16.340 に答える