我的控制器需要两种服务,并且都需要具有相同的dbcontext接口,
public class MyController : Controller
{
protected readonly ISomeService _some;
protected reaonly IUnitOfWork _unitOfWork
public MyController(IUnitOfWork unitOfWork, ISomeService some)
{
_some = some;
_unitOfWork = unitOfWork
}
//这是我的配置
services.AddDbContext<MyContext>(x =>
{
x.UseSqlServer(Configuration.GetConnectionString("coon"));
});
答案 0 :(得分:3)
实体框架上下文
实体框架上下文应添加到服务容器中 使用范围的生命周期。这是通过电话自动处理的 注册数据库上下文时将其添加到AddDbContext方法。 使用数据库上下文的服务也应使用范围 一生。
因此AddDbContext会将其添加为作用域生存期。
您需要确保将控制器/或其他使用它的地方也添加到DI中作为“范围”项。
范围内的生命周期服务每个请求创建一次。
答案 1 :(得分:0)
我发现Issuse的问题是我使用了由SaveChanges插入的AsyncSaveChanges,但是我的服务获得了同样的安装感激,谢谢大家:)!