通常、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
)として登録した場合、すべてのリクエストで共有されますか、それともそれぞれに固有ですか?
私の質問がばかげているように思われる場合は申し訳ありませんが、私はこれまでそのようなことをしたことがなく、今それらを学びたいです!だから私はそれを機能させるだけではなく、それを行うための最良の方法を知りたいのです。不明な点がございましたら、お気軽にお問い合わせください。
ご挨拶