Linq to SQL создает объекты, которые являются IQueryable и полны отношений.
Html-помощникам требуются определенные объекты интерфейса, такие как IEnumerable<SelectListItem>
.
То, что я думаю, могло произойти:
- Повторно использовать объекты из Linq в SQL без всего багажа, т.е. возвращать Pocos из объектов Linq в SQL без дополнительных классов доменной модели?
- Извлечение объектов, которые легко преобразуются в (или являются) вспомогательные объекты HTML, такие как перечисление SelectListItem?
Есть ли способ сделать это, не нарушая разделения интересов? Какой-то изворотливый трюк для удовлетворения потребностей?
Например, если бы это было в репозитории, SelectListItem не был бы там. select new
- это хороший способ вырезать объект из Linq в SQL без багажа, но он по-прежнему ссылается на класс, на который нельзя ссылаться:
IEnumerable<SelectListItem> result = (from record in db.table
select new SelectListItem {
Selected = record.selected,
Text= record.Text,
Value= record.Value }
).AsEnumerable();