Экземпляр ObjectContext был удален - даже с использованием оператора (context) и ToList () - PullRequest
2 голосов
/ 13 декабря 2011

У меня есть проект MVC3, запущенный с EF Code First.

Вот мой код для Home / Index:

public ActionResult Index()
{
    var IndVM = new IndexVM();
    using (QuoteContext QDomain = new QuoteContext())
    {
        IndVM.Quotes = QDomain.Quotes.Include("Tags").Include("Author").OrderByDescending(x => x.CreatedOn).Take(5).ToList();
        IndVM.Tags = QDomain.Tags.OrderByDescending(x => x.Quotes.Count).ToList();
        IndVM.Authors = QDomain.Authors.OrderByDescending(x => x.Quotes.Count).Take(5).ToList();
    }
    return View(IndVM);
}

Как вы видите, у меня есть Querying внутри использованияоператор, и я также вызываю ToList () .. но я все еще получаю ошибку:

Экземпляр ObjectContext был удален и больше не может использоваться для операций, требующих подключения.

Буду очень признателен за помощь в исправлении этого?Это ошибка в EF Code First?: (

Спасибо.

1 Ответ

1 голос
/ 13 декабря 2011

Вы должны отключить отложенную загрузку, иначе сериализатор попытается просмотреть свойства навигации и сгенерирует это исключение.

public ActionResult Index()
{
    var IndVM = new IndexVM();
    using (QuoteContext QDomain = new QuoteContext())
    {
        QDomain.ContextOptions.LazyLoadingEnabled = false;
        // Query and populate IndVM here...
    }
    return View(IndVM);
}
...