У меня возникла проблема при попытке создать представление с использованием шаблонов с помощью функции «Добавить представление» в контроллере с использованием 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) ~ все они кажутся правильными.
Есть ли у вас какие-либо идеи или вы сталкивались с чем-то подобным, и что вы сделали, чтобы решить эту проблему?