Возникла следующая ошибка, когда я пытаюсь использовать свой контекст в пользовательском сервисе:
System.ObjectDisposedException: 'Невозможно получить доступ к удаленному объекту.Распространенной причиной этой ошибки является удаление контекста, который был разрешен путем внедрения зависимости, а затем попытка использовать тот же экземпляр контекста в другом месте вашего приложения.Это может произойти, если вы вызываете Dispose () для контекста или переносите контекст
Мой код состоит из контроллера и службы.(Упрощенный) код моего контроллера:
public class IcsController : Controller
{
public string current_Directory = System.IO.Directory.GetCurrentDirectory();
//Importation du context (BDD)
private readonly Sync4All_AngularContext _context;
private readonly UserManager<User> _userManager;
public readonly OverbookingsManager _overbookingsManager;
private IIcsService _icsService;
public IcsController(Sync4All_AngularContext context, UserManager<User> userManager, IIcsService icsService, OverbookingsManager overbookingsManager)
{
_context = context;
_userManager = userManager;
_icsService = icsService;
_overbookingsManager = overbookingsManager;
}
//---------------------------------Telechargement et Update de tous les ICALS-----------------------------------
[HttpGet]
public ActionResult DownloadAndUpdate()
{
_overbookingsManager.SendEmailsOverbookings();
return Ok();
}
}
Служба определяется следующим образом в службах конфигурации
services.AddScoped<OverbookingsManager>();
А код службы следующий:
public class OverbookingsManager
{
private readonly Sync4All_AngularContext _context;
public OverbookingsManager(Sync4All_AngularContext context)
{
_context = context;
}
public async void SendEmailsOverbookings()
{
List<Overbookings> overbookinsList = await _context.Overbookings.Where(m => DateTime.Compare(m.DtEmailSent, DateTime.Today.AddDays(-7)) < 0).ToListAsync(); //This is where i got the error of context disposed
//blabla rest of my code
}
}
Когда я выполняю запрос get на моем контроллере, он вызывает метод DownloadAndUpdate (), который использует службу.
Другие методы моего контроллера и служб используют _context, но я никогда не выполняю _context.dispose ().
Я не понимаю проблемы, не могли бы вы помочь?
Спасибо