Я использую методы async для EF для извлечения данных из базы данных. В большинстве случаев все хорошо. Я пришел в несколько ObjectContextDisposed исключений в последнее время, и мне интересно, почему мое решение работает:Разница между этими двумя реализациями асинхронизации
Вот мой исходный код, который бросил ObjectContextDisposed
:
public Task<List<string>> GetEventParameterMru(EventParameter parameter, int count = 20)
{
using (var repo = new ConfigurationRepository())
{
return repo.GetEventParameterMRU(_CurrentWorkpack, parameter, count)
}
}
Вот мой новый код, который Безразлично» t throw:
public async Task<List<string>> GetEventParameterMru(EventParameter parameter, int count = 20)
{
using (var repo = new ConfigurationRepository())
{
var result = await repo.GetEventParameterMRU(_CurrentWorkpack, parameter, count);
return result;
}
}
Может кто-нибудь объяснить мне, в чем разница, и почему это работает?
Просто FYI, во всех моих использованиях этого метода, я называю await GetEventParameterMru()
Благодаря
Спасибо, это было очень ясно и красно. – Simon