3

MVC3コントローラーが作成して(直接的または間接的に)呼び出すモジュールの標準「チェーン」があります-「MyController」->「MyService」->「MyRepository」->「MyUnitOfWork」

モジュールは、次のように App_Start に登録されます。

var builder = new ContainerBuilder();

builder.RegisterType<MyRepository>().AsImplementedInterfaces().InstancePerHttpRequest();
builder.RegisterType<MyUnitOfWork>().AsSelf().InstancePerHttpRequest();
builder.RegisterType<MyService>().AsImplementedInterfaces().InstancePerHttpRequest();

IContainer container = builder.Build();
DependencyResolver.SetResolver( new AutofacDependencyResolver( container ) );

コントローラーからサービスへの複数の呼び出しを並行して実行しようとすると、EF4 で例外が発生します (UoW の基本クラスとして DbContext を使用します)。

同じHttpRequestのコンテキストでサービスへの並列呼び出しを行うためのモジュールの正しいスコープは何ですか?

ありがとうございました :)

4

1 に答える 1

2

HttpRequest ごとに 1 つの DbContext が機能しないようです。InstancePerDependency()おそらく、スレッドごとに新しい DbContextが必要になり、要求します。

于 2012-06-19T12:55:30.897 に答える