Linq to SQL创建IQueryable且充满关系的对象。
Html Helpers需要特定的接口对象,如IEnumerable<SelectListItem>
。Linq to Sql,存储库和Asp.Net MVC ViewData:如何删除冗余?
我想可能发生:
- 回用的LINQ的对象SQL不带任何包袱,即从LINQ的返回波苏斯到SQL对象,而不额外的域模型类?
- 提取可轻松转换为(或者)Html帮助器对象的对象,如SelectListItem枚举?
有什么办法可以做到这一点,而不会中断关注点分离吗?一些整洁的op技巧来弥补需求?
例如,如果这是在一个存储库中,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();
您可能想要了解如何使用MVVM模式(http://en.wikipedia.org/wiki/Model_View_ViewModel),而不是将您的域模型一直显示到UI。这是一个有点相关的线程http://stackoverflow.com/questions/2581490/should-business-objects-be-able-to-create-their-own-dtos/2581636。 – R0MANARMY 2010-04-06 03:55:09