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), target framework 4.5.1, C#, MVC5, EF6.1.3 Database First ObjectContext, SQL Server 2008.

Моето DAL и MVC приложение са в различни проекти.

Проверих, че и двете използват една и съща версия на EF6.1.3 чрез деинсталиране и повторно инсталиране както чрез Nuget, така и чрез подканите на командния ред на конзолата на Package Manager и че всички други препратки са правилни.

Моят модел клас

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.x.x от около 2 години.

И така, можете ли да разберете нежеланието ми да искам да се върна към използване на EF5.0.0?

2) И така, поради горната причина ~ това е защо се опитвам да използвам EF6.1.3, а не EF5.0.0.

Толкова просто ли е, че EF6.xxx не поддържа MVC5 скеле при използване на EF ObjectContext?

Боря се с това от дни ~ проучих този проблем задълбочено и въпреки че видях подобни проблеми със скелето, докладвани преди няколко години (MVC4 & EF6xx в съвместимост) ~ разбрах (може би погрешно), че MVC5 и EF6.1.3 сега разреших тези проблеми и не съм виждал някой друг да има проблем със създаването на View ~ Наистина ~ ако използвам същия код ~ но използвам 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 ~ Изглед генерирани успешно.

През последните две минути оттогава създадох два други модела, всеки с контролер и успешно изградих рендерируеми изгледи с помощта на скеле.

person Jiving Rockabilly    schedule 21.05.2015