处理实体框架上下文
本文关键字:上下文 框架 实体 处理 | 更新日期: 2023-09-27 18:16:51
在新的MVC-5
模板中,App_Start
文件夹中有一个名为Startup.Auth.cs
的文件,其中包含以下行(以及其他一些数据):
// Configure the db context and user manager to use a single instance per request
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
a single instance per request
是什么意思?以及像这样调用ApplicationDbContext
有什么区别:
var context = HttpContext.GetOwinContext().Get<ApplicationDbContext>();
并将此声明作为Controller class
中的字段:
public class HomeController : Controller
{
private ApplicationDbContext context = new ApplicationDbContext();
是否有处理context
的首选方法?提供context
的singleton class
是首选吗?
这只是一种方便的方法,可以在调用某个操作方法时创建上下文对象。每个请求需要一个实例,因为您希望所有对象都附加到相同的上下文实例。您还希望上下文的生存期是请求的生存期。
如果你要使用第二种方法private ApplicationDbContext context = new ApplicationDbContext();
,你必须将其放入每个控制器。你可以创建一些基本控制器做同样的事情并从你的基本控制器继承。
这只是一个用于演示的方便方法