0

通常、fromEntityFrameworkを使用するためのコードはdbContext次のようになります。

using (var context = new SMDbContext())
{
    context.StartTransaction();

    var userCrudLogic = new UserEntityCrudLogic(context);
    userCrudLogic.CreateUser(...);

    context.SaveChanges();
    context.Commit();
}

私の場合、これをWebサービスで使用したいので、CRUDロジックを呼び出す代わりに、ビジネスロジックを呼び出して検証などを行います。その後、ビジネスロジックはCRUDロジックを呼び出します。

私の問題は、コンテキストを保存する方法やCRUDロジックに渡す方法がわからないことです。最も簡単な方法はパラメーターを使用することですが、すべてのビジネスロジック関数に不要なパラメーターを含めたくありません。

現在のリクエストのコンテキストの保存と提供を担当する「コンテキストマネージャー」のようなものがあればよいと思います。IoCなどを使用して、必要な場所にコンテキストをロードすることができます。

しかし、そのような「マネージャー」はどのように見えるべきであり、どのように/どこにそれを保存する必要がありますか?

IoCにシングルトン(in global.asax)として登録した場合、すべてのリクエストで共有されますか、それともそれぞれに固有ですか?

私の質問がばかげているように思われる場合は申し訳ありませんが、私はこれまでそのようなことをしたことがなく、今それらを学びたいです!だから私はそれを機能させるだけではなく、それを行うための最良の方法を知りたいのです。不明な点がございましたら、お気軽にお問い合わせください。

ご挨拶

4

2 に答える 2

1

おそらく、リクエストごとにコンテキストを使用してWebアプリケーションを構成する必要があります。Googleを実行すると、ASP.NET MVC(IOCコンテナーなし)で、リクエストごとにこのCaching EntityFrameworkDbContextsとリクエストごとに1つのDbContextのようなものが得られます。

于 2012-06-08T14:57:25.273 に答える
0

WebサービスクライアントでCookieが有効になっていて、セッションデータを処理中に保存している場合は、Sessionオブジェクトを使用して保存できるはずです。しかし、それがどれほど賢明で安全かはわかりません。

于 2012-06-08T14:42:13.817 に答える