私は MVC3 アプリケーションを構築しており、DAL の SQL に Linq を使用しています。私の DAL は MyDataReader と呼ばれ、datacontext の作成/初期化を処理し、データベースからデータを取得するすべてのメソッドを定義します。すべてのメソッドはインスタンス メソッドであるため、メソッドを呼び出すには、MyDataReader オブジェクトをインスタンス化する必要があります。
私の質問は、私の DAL でメソッドを呼び出す最良の方法は何ですか。最初は、DAL メソッドを呼び出す必要があるたびに、コントローラーから MyDataReader オブジェクトをインスタンス化していました。その後、MyDataReader オブジェクトをインスタンス化するたびに、datacontext オブジェクトが作成され、接続が確立されることに気付きました。
2 番目のアプローチでは、次のように Global.asax ファイルに静的パラメーターを作成しました。
public class MvcApplication : System.Web.HttpApplication
{
public static MyDataReader reader;
protected void Application_Start()
{
reader = new MyDataReader();
AreaRegistration.RegisterAllAreas();
RegisterGlobalFilters(GlobalFilters.Filters);
RegisterRoutes(RouteTable.Routes);
}
}
これにより、データベースの初期化操作が最小限に制限されます。次の方法で、すべてのコントローラーから DAL メソッドを呼び出すことができます。
MvcApplication.reader.CallTheMethod()
これは良い方法ですか?DAL メソッドを呼び出す最良の方法は何ですか?