Ошибка ObjectContext .Net Entity Framework - PullRequest
0 голосов
/ 25 марта 2012

У меня есть метод с кодом:

using (var cc = new MyDBContext())
            {
                var myList = (from user in cc.Users
                                   where user.UserGroup.Name == "smth"
                                   orderby user.ID ascending
                                   select user);

                if (startIndex != null)
                    return View(myList.Skip((int)startIndex).Take(50));
                else
                    return View(myList);
            }

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

Некоторые люди говорят, что .ToList () должен решить проблему, но он также вызывает исключение с myList.ToList ().В чем моя проблема?

PS в режиме отладки. У меня исключение на @ item.FullName, но если я наведу указатель мыши на свойство FullName, я увижу правильное значение.

Извините за мой плохой английский.

Ответы [ 2 ]

1 голос
/ 25 марта 2012

Проблема была в ленивом загруженном подчиненном свойстве сущности пользователя. Я добавляю в ссылку оператор Include ("PropName"), и он хорошо работает.

1 голос
/ 25 марта 2012

Полностью возьмите операторы return View () за пределами блока using.Это обеспечит получение полных наборов данных до удаления вашего объекта DbContext.Например:

using (var cc = new MyDBContext())
{
    var myList = (linq).ToList();
}
return View(myList);

Я почти уверен, что проблема в том, что вы возвращаете IEnumerable в View, что означает, что элементы еще не были получены.Но когда вы возвращаете объект в представление, DbContext удаляется до того, как представление сможет получить строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...