MVC 2 Приложение с реляционной БД и обертками объектов - как получить реляционные данные в представлениях? - PullRequest
1 голос
/ 11 августа 2010

Я недавно провела рефакторинг своего приложения следующим образом: соединение dn Linq с SQL. Объекты для переноса классов linq в sql. Mappers для отображения между объектами и сущностями Linq to Sql.в пользовательский интерфейс.

Раньше я просто использовал Linq to SQL-объекты в своем пользовательском интерфейсе (я знаю).Но при отображении отношений это было так просто.Например:

У меня есть способ с названием SchoolProfile и таблица с названием School.У пользователя есть SchoolProfile (с GPA, Rank и т. Д.), Который ссылается на School.Функциональность добавления школы была простой - потому что у нее нет внешних ключей.

При создании формы для пользователя, чтобы вывести список всех SchoolProfiles - они не хотят видеть SchoolId.Раньше, на мой взгляд, это был бы просто schoolprofile.School.Name.Теперь ShoolProfile - это «плоский» объект в моих ViewData без свойств.Я думаю, что я мог бы создать другие классы, чтобы получить связанные данные (название школы и т. Д.), Но это кажется грязным.Есть предложения?

1 Ответ

1 голос
/ 11 августа 2010

Я предлагаю посмотреть на ViewModels и AutoMapper . По сути, вы создадите конкретную ViewModel для своего View и можете включить SchoolName в качестве свойства этой ViewModel. Затем вы можете использовать AutoMapper для сопоставления вашей доменной модели (от Linq до Sql) с вашей ViewModel.

По сути, вы хотите, чтобы ваш View получал всю необходимую информацию из ViewModel. Поэтому создавайте свою модель представления на основе всей информации, которую вам нужно отобразить. Поэтому все, что нужно сделать, это взять то, что находится во ViewModel, и выплюнуть его.

...