Я предполагаю, что у вас есть представление, которое представляет некоторую информацию из более чем одной модели, возможно, в виде списка. Например, у вас может быть модель клиента, которая имеет набор контактов, но в своем списке вы хотите выбрать отображение некоторых сведений о клиенте вместе с именем и номером телефона основного контакта. Что я обычно делаю в такой ситуации, так это определяю конкретную модель «презентации», которая состоит только из тех деталей, которые я могу захотеть показать в этом комбинированном представлении. Обычно это модель только для чтения. Используя LINQ to SQL, я мог бы даже определить это как табличную функцию (для поддержки поиска) и связать ее с представлением, которое инкапсулирует объединение различных таблиц. В обоих случаях вы можете добавить основанную на представлении модель представления в ваш DBML и связать табличную функцию с ней в качестве метода в контексте данных.
Я предпочитаю делать это, потому что считаю, что с точки зрения запросов более эффективно создать запрос на сервере и просто использовать его из кода. Если вы не используете табличную функцию для поиска, вы можете составить запрос в коде и выбрать класс «презентация». Я предпочел бы фактический класс по анонимному типу для простоты использования в представлении. Получить свойства из анонимного типа в представлении будет сложно.