EF Joins и MVC Razor Views - PullRequest
       2

EF Joins и MVC Razor Views

0 голосов
/ 03 августа 2011

У меня есть несколько таблиц, отношения которых основаны на уникальных ключевых ограничениях.

Быстрый пример:

VersionId, VersionName
SurveyId, SurveyName, VersionId
QuestionId, QuestionName, SurveyId, VersionId

EF в настоящее время не поддерживает отношения, основанные на уникальных ключевых ограничениях. В моем индексном представлении для вопроса, как лучше всего обрабатывать присоединение к опросу, чтобы показать сетку вопросов с названием опроса относительно модели?

Нужен ли мне анонимный тип? db.Questions.Include ("Surveys"), похоже, ничего не делает. Я мог бы использовать linq и создать ViewModel из объединенных таблиц (я подозреваю, что это правильный путь), но в EF & MVC есть так много вещей, которые я решил проверить, прежде чем что-либо делать.

Ответы [ 2 ]

1 голос
/ 04 августа 2011

Прежде всего, нет никаких объединений (или практически любой другой логики) в представлениях бритв. Контроллер - это место для создания ViewModel, а представления - это просто средство представления этой ViewModel. Как вы упомянули, сделать ViewModel для этого - единственный (правильный) путь. И вы можете заполнить эту модель представления любым способом - linq - абсолютно нормальный способ создания объединенных данных. И если вы хотите пойти дальше, вы должны поместить эту логику соединения в какое-то хранилище, например QuestionRepository, а не в контроллер.

1 голос
/ 04 августа 2011

Почему у вас есть ссылка на версию (т.е. VersionID) как в вашей таблице опроса, так и в вашей таблице вопросов? Не могли бы вы получить версию из вопроса через опрос?

Кроме того, если у вас есть отношение между Вопросом и Опросом "многие к одному" или "один к одному" (каждый вопрос имеет только один опрос), тогда оно должно быть db.Questions.Include("Survey") - не множественное число .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...