Я сбит с толку.
У меня есть модель linq-to-sql, которая является зеркалом таблицы базы данных
(Id, CustomerId, RegionId,...N),
ничего интересного, все внешние ключи. Теперь мне нужно просмотреть эти данные в моем представлении asp.net. Я создаю ViewModel
(Id, CustomerId, Customer, RegionId, Region, CustomersSelectList, RegionsSelectList).
Очевидно, что viewmodel - это расширенный набор модели linq-to-sql.
Теперь, как мне преобразовать одно в другое? Я использую автомаппер, но озадачен тем, как найти хорошие шаблоны для получения недостающих данных.
Я вижу возможные решения:
Создайте 3-й класс, который будет моделью l2s + соединенные значения, и заполните этот класс, соединяя и проецируя. Затем автоматизируйте этот класс для моей модели представления.
Возвращать анонимные классы через проекцию и сопоставлять их с моделями представления с помощью автомпера (не очень чисто).
Создание представлений БД для запросов (представления - это все необходимые таблицы, объединенные вместе).
Пожалуйста, помогите мне с этим, потому что раньше я использовал свои классы L2S непосредственно в представлениях (для простых проектов), теперь у меня есть более сложные представления и мне нужно что-то делать для решения сложности.
Кроме того, кто несет ответственность за это преобразование? Где это должно произойти?
Спасибо.
UPDATE:
позвольте мне немного уточнить. Мне нужно иметь возможность получить полное представление о моем предприятии.
В БД он хранится в нескольких таблицах, в L2S это много классов (зеркальных таблиц БД), в моем ViewModel он должен быть «накоплен» из многих таблиц БД.
Должен ли я выполнять соединения sql через linq и напрямую заполнять ViewModel?
Должен ли я создать бизнес-объект (не linq one) со всеми полями и заполнить его linq для sql, а затем автоматизировать его для ViewModel?
Должен ли я прекратить использование класса L2S в качестве бизнес-объекта, создать новый класс бизнес-объекта с нуля и вместо этого рассматривать L2S как тупой ORM?