在控制器中使用单例模式,确保只实例化一次DbContext,并将其注入到控制器中。
示例代码:
public class MyController : Controller
{
private readonly MyDbContext _dbContext;
public MyController(MyDbContext dbContext)
{
_dbContext = dbContext;
}
// 显示所有数据
public IActionResult Index()
{
var data = _dbContext.MyEntities.ToList();
return View(data);
}
}
然后在Startup.cs中进行配置:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
{
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection"));
});
services.AddSingleton();
services.AddControllersWithViews();
}
这种方法可以确保在整个应用程序中只有一个DbContext实例,从而避免了多次对控制器函数的调用造成的问题。