您可以通过构造函数注入将dbcontext从数据访问层添加到类中来解决此问题.
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(o => o.UsesqlServer(myConnStr));
services.AddScoped(); // 'scoped' in ASP.NET means "per HTTP request"
}
}
public class MvcController
{
private Repository repo;
public MvcController(Repository repo)
{
this.repo = repo;
}
[HttpPost]
public void SomeEndpoint()
{
this.repo.AddFoo(new Foo());
}
}
public class Repository
{
private DbContext db;
public Repository(ApplicationDbContext db)
{
this.db = db;
}
public void AddFoo(Foo obj)
{
this.db.Set().Add(obj);
this.db.SaveChanges();
}
}