Я хочу использовать шаблон async/await в моем ASP.NET MVC-контроллере. Я получаю ошибкуВ MVC-контроллере, требующем async для возврата EntityFramework CodeFirst data
ObjectContext экземпляр был размещенной и больше не может быть использован
В конце концов, я хотел кэшировать мой результат, но сейчас я думаю, что первый шаг к просто понять, как работать с EF и вернуться с асинхронным/ждут
public class SpeakerController : Controller
{
public async Task<ActionResult> Index()
{
using (var context = new MultiTenantContext())
{
var speakersAll = await context.Speakers.ToListAsync();
return View("Index", speakersAll);
}
}
Решение Найдено:
private MultiTenantContext context = new MultiTenantContext();
public async Task<ActionResult> Index()
{
var speakersAll = await context.Speakers.ToListAsync();
return View("Index", speakersAll);
}
Как я уже сказал в приведенном ниже комментарии, вытягивание контекста из использования приводит к тому, что он не может быть удален, когда выполняется ToListAsync().
Какая строка выдает ошибку? – Carl
Я только что нашел пример, который показывает, что я могу переместить контекст в контроллер, например: private MultiTenantContext context = new MultiTenantContext(); и это решило проблему здесь. Теперь я перехожу к проблеме с кешем. –
Вам следует опубликовать, как вы решили проблему как ответ для всех, кто может столкнуться с вашей должностью в будущем. – drneel