这是dbcontext的正确用法吗?

时间:2014-02-08 09:58:29

标签: c# asp.net-mvc

我有一个MVC4,EF网络应用程序。

我有一个数据访问类(“db_calls”),它具有我的所有数据访问方法。

在我的每个控制器中,我使用以下方法实例化此类:

private db_calls dbcalls = new db_calls();

这个“db_calls”类实例化dbcontext以便处理数据,如下所示:

private MyContext db = new MyContext ();

我有3个问题:

  1. 每次我从我的控制器访问db_calls方法,例如db_calls.getrecord()是否会再次实例化或每个控制器只执行一次?
  2. 当我点击另一个控制器时,它是否删除了之前的db_calls实例并启动了另一个控制器?
  3. 同样,db_calls类本身是否每次为方法实例化上下文,或者只执行一次?
  4. 我担心的是,我将会有大量的物体漂浮在我不需要的地方。

1 个答案:

答案 0 :(得分:1)

我认为无论何时使用“new”关键字,都会在内存中创建一个新对象。

  1. 如果在方法外部编写实例化代码,则每个控制器只有一次。
  2. 是的,无论何时创建新的db_calls,它都会创建一个新的上下文。
  3. 另外我认为你的情况并非太多未经优化。