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

Я новичок в C # и MVC в целом, и я создал свой собственный небольшой сайт блога в качестве тестового проекта. Хотя на данный момент большинство вещей работает, у меня возникли проблемы с выбором нескольких столбцов из запросов LINQ. Только после того, как я наткнулся на вопрос о SO, я понял, что могу использовать сгенерированные классы сущностей в качестве строго типизированных моделей, чтобы справиться с этим. Мне это было нужно, так как я создавал уровень базы данных (который я также не использовал раньше) и попытка передать анонимные типы через этот уровень не сработала. Я понимаю, почему это было так, поэтому я удовлетворен тем, что двигаюсь в правильном направлении.

Однако этот подход, похоже, вызвал у меня еще одну проблему. Я пробовал простой тест, чтобы получить 2 столбца из моей таблицы категорий: CategoryID и Name. Сначала я попробовал следующее:

using (MyEntities db = new MyEntities())
{
    var model = from c in db.Categories
                select new Category { CategoryID = c.CategoryID, Name = c.Name };

    return View(model);
}

Это дало мне ошибку ObjectContext is disposed при попытке перебрать модель в представлении. Прочитав этот вопрос , я попытался переместить оператор return за пределы блока using и вызвать AsEnumerable () в модели следующим образом:

IEnumerable model;

using (MyEntities db = new MyEntities())
{
    model = from c in db.Categories
            select new Category { CategoryID = c.CategoryID, Name = c.Name };
}

return View(model.AsEnumerable());

Однако это все еще дает мне ту же ошибку ObjectContext is disposed, когда Я пытаюсь перебрать модель в представлении. Так что теперь я не понимаю, почему я получаю ошибку. Я даже попытался полностью удалить директиву using, но это дает мне другую ошибку:

«Сущность или сложный тип MyProjectModel.Category не может быть сконструирован в запросе LINQ to Entities».

Если это поможет, вот соответствующий код для моей точки зрения:

@model IEnumerable

@foreach (var category in Model)
{
    

@category.Name

}

Будет ли кто-нибудь достаточно любезен, чтобы просветить меня относительно того, что мне не хватает?

Спасибо.

5
задан Community 23 May 2017 в 11:44
поделиться