【发布时间】:2023-03-17 05:00:01
【问题描述】:
我应该以免责声明开头,说我是 ASP.NET 开发的新手,并不真正了解数据库上下文,尽管我花了最后一个小时阅读文档。当我构建我的 ASP.NET MVC 5 应用程序时,我选择了个人用户帐户身份验证。 Visual Studio 创建了一个名为IdentityModels.cs 的文件,并在其中定义了一个ApplicationUser 类和一个ApplicationDbContext 类。
我已经完成了一些开发工作,并且我的 CRUD 控制器使用 ApplicationDbContext 与数据库通信,方法是在每个控制器上都有这个私有属性:
private ApplicationDbContext db = new ApplicationDbContext();
在控制器操作中,我会执行以下操作:
return View(db.Trains.ToList());
我想整理一下这个数据库上下文的东西,但我需要先了解它。我的主要问题是:
- 是否可以像我现在这样对整个应用程序只使用一个数据库上下文?
- 我可以用我自己的替换
IdentityModels.cs中定义的ApplicationDbContext类吗? -
ApplicationDbContext类派生自IdentityDbContext<ApplicationUser>,这是否意味着我应该为 Visual Studio 提供的用户身份验证内容和我自己的代码拥有单独的数据库上下文?
我认为我的最终目标是使用我自己的数据库上下文,称为DatabaseContext,然后在我的所有控制器继承的基本控制器中使用它。然后我只有一个实例化数据库上下文的地方,而不是在每个控制器中。
谁知道呢,我可能想错了。每个人似乎都有自己喜欢的处理方式。
谢谢!
【问题讨论】:
标签: c# asp.net asp.net-mvc entity-framework