MVC5 и EF6.1.3 Проблемы со скаффолдингом

У меня возникла проблема при попытке создать представление с использованием шаблонов с помощью функции «Добавить представление» в контроллере с использованием MVC5 с Entity Framework 6.1.3.

Однако при использовании Entity Framework 5.0.0 все работает отлично ~ я могу успешно создать представление.

Использование Entity Framework 6.1.3

Когда я выбираю функцию «Добавить вид», я получаю следующую ошибку

"Произошла ошибка при запуске выбранного генератора кода. "Не удалось получить метаданные для "xxx". Не удалось найти тип CLR для "xxx".

Моя среда — VS2013 Ultimate (Update4), целевая платформа 4.5.1, C#, MVC5, EF6.1.3 Database First ObjectContext, SQL Server 2008.

Мое приложение DAL и MVC находится в разных проектах.

Я проверил, что оба используют одну и ту же версию EF6.1.3, удалив и переустановив как Nuget, так и приглашения командной строки консоли диспетчера пакетов, и что все остальные ссылки верны.

Мой класс модели

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using SysviewData;

namespace SysviewWebEF613.Models
{
    public class DisplaySysoutModel
    {
        SysviewEntities context = new SysviewEntities();

        public IEnumerable<vw_soServerInfo> GetSysouts()
        {
            return context.vw_soServerInfo.ToList();
        }
    }
}

Мой контроллер

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using SysviewWebEF613.Models;

namespace SysviewWebEF613.Controllers
{
    public class DisplaySysoutsController : Controller
    {
        // GET: DisplaySysouts
        DisplaySysoutModel model = new DisplaySysoutModel();
        public ActionResult Index()
        {
            return View(model.GetSysouts());
        }
    }
}

Относительно EF6.1.3

1) Я использую первое моделирование базы данных EF. По историческим причинам я использую ObjectContext.

2) Я пытался использовать обе стратегии генерации кода ~ "Legacy ObjectContext" и "T4" ~ (очистить/перестроить и т. д.), но они не работают ~ я получаю то же сообщение об ошибке.

"Произошла ошибка при запуске выбранного генератора кода. "Не удалось получить метаданные для "xxx". Не удалось найти тип CLR для "xxx".

Однако, если я использую EF5.0.0, я могу успешно создать представление.

Общая информация и почему я не хочу использовать EF5.0.0

1) Я разрабатываю новый веб-интерфейсный проект с использованием MVC5, который заменит существующее веб-приложение в решении, содержащем 23 других проекта. В настоящее время я использую EF6.1.3 и использую EF6.xx уже около 2 лет.

Итак, вы можете понять мое нежелание вернуться к использованию EF5.0.0?

2) Итак, по вышеуказанной причине ~ вот почему я пытаюсь использовать EF6.1.3, а не EF5.0.0.

Просто ли EF6.xxx не поддерживает формирование шаблонов MVC5 при использовании EF ObjectContext?

Я боролся с этим в течение нескольких дней ~ Я тщательно исследовал эту проблему, и хотя я видел похожие проблемы с лесами, о которых сообщалось пару лет назад (совместимость MVC4 и EF6xx) ~ я понял (возможно, неправильно), что MVC5 и EF6.1.3 теперь решил эти проблемы, и я не видел, чтобы у кого-то еще были проблемы с созданием представления ~ Действительно ~ если я использую тот же код ~ но использую EF5.0.0 ~ все работает.

Я дважды проверил свои строки подключения в моем app.config (DAL) и Web.config (проект MVC) ~ все они кажутся правильными.

Есть ли у вас какие-либо идеи или вы сталкивались с чем-то подобным, и что вы сделали, чтобы решить эту проблему?


person Jiving Rockabilly    schedule 20.05.2015    source источник


Ответы (1)


Решение на самом деле очень простое.

Оставьте пункт меню «Класс контекста данных:» пустым.

следующим образом

введите здесь описание изображения

Я понял это только тогда, когда сравнивал свое решение MVC5/EF 6.1.3 с моим решением MVC5/EF 5.0.0.

~ вы не получаете меню «Класс контекста данных:» с EF 5.0.0, поэтому по наитию я попытался создать представление в своем решении EF 6.1.3, оставив меню «Класс контекста данных:» пустым и BINGO ~ View сгенерировано успешно.

За последние две минуты я создал еще две модели, каждая с контроллером, и успешно построил представления с возможностью рендеринга, используя скаффолдинг.

person Jiving Rockabilly    schedule 21.05.2015