我的仓库层一直工作正常,为的东西像GetAll()
等名单曝光IList<T>
返回的IList不过,我想对我的LINQ查询的一个使用OrderBy
。然后我遇到了真正的大问题,因为LINQ查询无法转换为IList
。它想要返回一个IOrderedEnumerable
。如何从我的仓库与LINQ/EF有序查询
这是一个大问题,因为我想保持自己的回购自我和不暴露IQueryable
到我的服务。为什么只是因为'orderby'而改变我的回购架构!
所以,尽管这个我开始我的仓库层转换为返回IEnumerable
,这样我至少可以返回排序的数据。然后我遇到了更多的问题,因为我需要将我的数据类转换为IEnumerable
,这样我可以轻松地在我的视图模型和数据模型类之间进行映射。 (这是使用AutoMapper)。
然后我意识到代码优先不喜欢IEnumerable
,如果不使用至少一个IList
定义(而且我还告诉ICollection
?)不会建表之间的关系。
所以我的问题就是从这里做什么吗?我所要做的就是以有序的方式将数据返回给客户端(在本例中为服务),而不必在整个应用程序中改变返回类型。
这将帮助,如果你表现出你正在尝试做的,哪些部分不工作真正的代码示例。 – 2011-03-30 18:05:42
你也应该张贴链接到你前面的问题,你有这并不能满足你的解决方案:http://stackoverflow.com/questions/5487115/how-do-i-order-an-underlying-child-collection-的父母在类中linq-lambda – 2011-03-30 18:12:56
顺便说一句。建议使用“ICollection”,因为动态代理正在使用“HashSet”。 – 2011-03-30 18:14:33