Форум программистов, компьютерный форум, киберфорум
C#: Web, ASP.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 10
1

Как создать шаблон контроллера

14.11.2014, 11:20. Показов 2114. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую!

Изучая ASP.NET MVC на простых примерах, я столкнулся с проблемой при создании шаблона контроллера с действиями чтения / записи и представлениями, использующего Entity Framework.

Для этого выбирается класс модели Album.cs:
C#
1
2
3
4
5
6
7
8
9
10
public class Album
{
    public int AlbumId { get; set; }
    public int GenreId { get; set; }
    public int ArtistId { get; set; }
    public string Title { get; set; }
    public decimal Price { get; set; }
    public string AlbumArtUrl { get; set; }
    public Genre Genre { get; set; }
}
Класс контекста данных MusicStoreEntities:
C#
1
2
3
4
5
public class MusicStoreEntities : DbContext
{
    public DbSet<Album> Albums { get; set; }
    public DbSet<Genre> Genres { get; set; }
}
Класс Genre, упомянутый к классе контекста данных:
C#
1
2
3
4
5
6
7
8
 
public class Genre
{
    public int GenreId { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public List<Album> Albums { get; set; }
}
Проблема в том, что когда я жму кнопку "Добавить" в диалоговом окне создания нового контроллера, IDE выдаёт сообщение "Не удалось извлечь метаданные для (models_namespace).Album. Using the same DbCompiledModel to create contexts against different types of database servers is not supported. Instead, create a separate DbCompiledModel for each type of server being used".

Помогите, пожалуйста, разобраться в чём проблема и как её решить.

Используется 5-я версия EF и MVC 4.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.11.2014, 11:20
Ответы с готовыми решениями:

Как создать шаблон кода в VS2008?
Привет! В проекте с NHibernate приходится через строчку писать один и тот же код. Подскажите,...

Как выполнить редирект с одного метода контроллера в другой, без пересоздания контроллера
Я делаю в одном из методов RedirectToAction() , в результате чего, перед перенаправлением...

Как передать из одного контроллера объект модели в строго типизированное представление другого контроллера
Есть строго типизированное представление в контроллере Main, в методе ListOrders. Как в него можно...

Как создать шаблон из dt?
Здравствуйте. Есть шаблоны в формате *.dt. Как их сделать видимыми для конфигуратора? Попробовал...

4
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
14.11.2014, 14:54 2
Сравните поля в БД с полями класса , и если у вас модель CodeFirst , то еще забыли virtual прописать для свойств определяющих связи.
1
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 10
14.11.2014, 20:48  [ТС] 3
Могли бы Вы в двух словах объяснить зачем там virtual? Классы модели вроде нигде не наследуются... А если и наследовались бы, то почему virtual только у foreign keys?

Я действительно на написал virtual, но для решения проблемы этого, к сожалению, оказалось не достаточно.
0
2735 / 2041 / 380
Регистрация: 22.07.2011
Сообщений: 7,731
15.11.2014, 01:02 4
Лучший ответ Сообщение было отмечено brombenzol123 как решение

Решение

Цитата Сообщение от brombenzol123 Посмотреть сообщение
Могли бы Вы в двух словах объяснить зачем там virtual?
Для того что бы EF мог создать прокси и переопределить эти методы:
http://msdn.microsoft.com/en-u... 68057.aspx
Но , это так , не столько решение , сколько просто недостаток в коде , без виртуалки у вас навигационные поля по умолчанию будут пустыми и нужно будет инклудить их вручную.
А по поводу ошибки , сказано же , что скопилированая модель не может быть использована в контексте предназначенном для другой версии сервера БД. , там нужно смотреть шире ваш код. - возможно вы подключались к одной БД , потом к другой но с той же DbCompiledModel.
http://msdn.microsoft.com/en-u... .113).aspx


Похоже это ваш случай.
http://www.itorian.com/2012/10... a-for.html
1
0 / 0 / 0
Регистрация: 14.11.2014
Сообщений: 10
16.11.2014, 00:27  [ТС] 5
Всё свелось к тому, чтобы закомментировать строку подключения, потом создать шаблон контроллера и после этого раскомментировать строку подключения.

Спасибо Вам за пояснения и полезные ссылки. Вы мне очень помогли.
0
16.11.2014, 00:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2014, 00:27
Помогаю со студенческими работами здесь

Как создать шаблон
подскажите, плиз, кто в ворде разбирается очень нужно создать такой шаблон, как в приложении, но...

Как создать шаблон
Приветствую, комрады! Великодушно прошу совета. (Не решения, а именно совета) В мускул пишутся...

Как создать шаблон
Нужна помощь. Как можно сделать шаблон на паскале. Срочно нужно. Помогите пожалуйста. За ранее...

Как создать такой шаблон?
Как создать такой шаблон?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru