日期:2014-05-18  浏览次数:20884 次

C#,关于框架问题
三层结构,又增加了一个实体的结构。现在我想通过数据访问层,把数据库的查询结果以List<实体Ojbect>返回到业务逻辑层再返回到表示层。在表示层以DataGridView显示数据。当然这很简单,把返回的List<实体Ojbect>值赋给DataGridView对象的
DataScource属性就可以了。问题是:我在表示层把“排序”作为一个可选的条件,对数据进行显示,不知有什么好的处理方法。如果以DataSet来作为返回值 的话,就很方便了,在业务逻辑层里创一个DataView,设置一下DataView对象的RowFilter属性。再把DataSet 传到表示层。如果List<实体Ojbect>返回到业务逻辑层,它又不能够强制转化成DataView ,我有一想法是,在业务逻辑层写一个Swith语句来确定SQl Server的查询语句。再把 这个语句传一到业务逻辑层,这样一来,我就觉得很麻烦,感觉不到 三层结构里实体类的优势所在。
  请高手指教,怎么对数据进行排序。

------解决方案--------------------
如果允许你使用LINQ的话这简直不是问题。
C# code
List<Object> Unsorted;

var q = from c in Unsorted orderby c.Id select c;
//q is IOrderedEnumerabled<Object>
//同样也可以绑定,最重要的是,它是按c.Id排序的。

------解决方案--------------------
楼主去MSDN上看一下List.Sort (泛型 Comparison) 吧,也能满足你的要求