在ASP.NET Core中,可以使用依赖注入容器来确保在一个请求中只创建一个DbContext实例。以下是一种解决方法:
public void ConfigureServices(IServiceCollection services)
{
// 注册DbContext服务
services.AddDbContext(options =>
options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
// 注册其他服务
// ...
}
public class MyController : Controller
{
private readonly ApplicationDbContext _context;
public MyController(ApplicationDbContext context)
{
_context = context;
}
// ...
}
这样做可以确保在每个请求中只创建一个DbContext实例。每个控制器和其他使用构造函数注入的类都将获得同一个DbContext实例。