невозможно получить доступ к удаленному объекту при обновлении базы данных с использованием EF Core и Azure функций - PullRequest
0 голосов
/ 13 января 2020

Я пытаюсь получить единственную строку из базы данных, в которой условие, используя EF Core, используя приведенный ниже метод,

 IncidentRequestDetailsModel dbObject = _context.IncidentRequestDetails.SingleOrDefault(no => no.Ticket_No == requestList[i].Ticket_No);

также пробовал это

IncidentRequestDetailsModel dbObject = _context.IncidentRequestDetails.Where(no => no.Ticket_No == requestList[i].Ticket_No).FirstOrDefault();

, и это

IncidentRequestDetailsModel dbObject = await _context.IncidentRequestDetails.FindAsync(requestList[i].Id);

Выдает эту ошибку

, если вы вызываете Dispose () для контекста или заключаете контекст в оператор using. Если вы используете внедрение зависимостей, вы должны позволить контейнеру внедрения зависимостей избавиться от экземпляров контекста. Имя объекта: 'uploadContext'. '

Моя конечная цель - обновить БД, используя приведенный ниже общий код:

 incidentRequestDetailsModelDB.Status = incidentRequestDetailsModel.Status;
 _context.IncidentRequestDetails.Update(incidentRequestDetailsModelDB);
 await _context.SaveChangesAsync();

Я использую EF Core с Azure Функции и. Net Core 2.1.

1 Ответ

1 голос
/ 13 января 2020

Это не имеет никакого отношения к синтаксису вашего запроса. Это означает, что какая-то часть вашего кода вызывала метод Dispose() на _context перед той частью кода, где вы пытаетесь выполнить запрос.

Вам необходимо отследить, куда вы звоните Dispose() или выход из оператора using. И убедитесь, что вы не используете один и тот же экземпляр контекста при множественном вызове вашей Azure функции.

...