C# dbcontext的用法正确吗?

C# dbcontext的用法正确吗?,c#,asp.net-mvc,C#,Asp.net Mvc,我有一个MVC4、EF web应用程序 我有一个数据访问类(“db_调用”),它拥有我所有的数据访问方法 在我的每个控制器中,我用以下命令实例化该类一次: private db_calls dbcalls = new db_calls(); 这个“db_calls”类实例化dbcontext,以便像这样处理数据: private MyContext db = new MyContext (); 我有3个问题: 每次我从控制器访问db_calls方法,例如db_calls.getrecord(

我有一个MVC4、EF web应用程序

我有一个数据访问类(“db_调用”),它拥有我所有的数据访问方法

在我的每个控制器中,我用以下命令实例化该类一次:

private db_calls dbcalls = new db_calls();
这个“db_calls”类实例化dbcontext,以便像这样处理数据:

private MyContext db = new MyContext ();
我有3个问题:

  • 每次我从控制器访问db_calls方法,例如db_calls.getrecord()时,它是再次实例化类还是每个控制器只实例化一次
  • 当我点击另一个控制器时,它是否摆脱了之前的db_调用实例化并启动了另一个
  • 类似地,db_calls类本身是每次为一个方法实例化上下文,还是只实例化一次

  • 我担心的是,我会有一堆我不需要的对象漂浮在我的周围。

    我认为,每当你使用“new”关键字时,就会在内存中创建一个新对象

  • 如果实例化代码是在方法外部编写的,则每个控制器仅执行一次
  • 是的,无论何时创建一个新的db_调用,它都会创建一个新的上下文
    而且我认为你的案例没有太多的未优化

    每个问题一个问题。谢谢。简单易懂。我意识到这一点并没有得到优化。这是我的第一个应用程序,所以先功能,后优化。