使用SubSonic(2.2)SqlQuery对象,我正在查询包含来自另一个表的不同行的视图。但是,查询的结果包含视图中某些行的多行。它似乎是因为生成的查询中的临时表的连接实现了分页。如何避免重复行?
奖励积分:我必须使用该视图,因为SubSonic不能同时执行.Paged()和.Distinct()。为什么不呢?
答案 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,因此您可以首先避免使用该视图。