SubSonic .Paged()查询返回重复记录

时间:2011-02-08 19:48:56

标签: c# .net asp.net sql subsonic

使用SubSonic(2.2)SqlQuery对象,我正在查询包含来自另一个表的不同行的视图。但是,查询的结果包含视图中某些行的多行。它似乎是因为生成的查询中的临时表的连接实现了分页。如何避免重复行?

奖励积分:我必须使用该视图,因为SubSonic不能同时执行.Paged()和.Distinct()。为什么不呢?

1 个答案:

答案 0 :(得分:0)

如果我没记错的话,你必须在正确的位置上使用distinct。

var query = DB.Select().From<Products>()
              .Where(Products.CategoryColumn).IsEqualTo(5).Distinct();

var query = DB.Select().Distinct().From<Products>()
              .Where(Products.CategoryColumn).IsEqualTo(5);

两个语句都编译但第一个生成无效的sql代码。调试SubSonic SqlQueries的一个很好的起点是生成输出:

var sql = query.BuildSqlStatement();

另一种解决方案可能是使用Group而不是distinct,因此您可以首先避免使用该视图。