Linq to SQL 创建 IQueryable 且充满关系的对象。
Html Helpers 需要特定的接口对象,例如IEnumerable<SelectListItem>
.
我认为可能发生的事情:
- 重用从 Linq 到 SQL 的对象,而不需要所有的包袱,即,从 Linq 到 SQL 对象返回 Pocos 而不需要额外的域模型类?
- 提取易于转换为(或现在是)Html 辅助对象的对象,如 SelectListItem 枚举?
有没有办法在不破坏关注点分离的情况下做到这一点? 一些巧妙的 oop 技巧来满足需求?
例如,如果它在存储库中,则 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();