我正在创建Visual Studio中的自定义数据库测试条件,并试图验证排序顺序。验证数据表是否已排序
验证DataTable中的行实际上已排序,但我也想验证每个排序列是否至少有一个具有多个不同值的分组。
我维护定义排序列的整数列表(负整数表示降序排列顺序 - 而整数的绝对值是列号)。
让我澄清。
我正在编写一个单元测试条件,验证排序后的DataTable。我可以验证该行的排序顺序是否正确,但我想验证结果集是否包含实际测试排序的数据。换句话说,只有一行或任意数量的重复行的结果集确实被排序,但实际上并没有测试排序。
我需要验证该排序的每个级别在至少一个分组中包含至少两个不同的值。
在过去,我使用了SQL和.Net代码的组合,并使用以下一组查询来确保有足够的数据来测试排序。
SELECT TOP 1 COUNT(DISTINCT column1)
FROM table
HAVING COUNT(DISTINCT column1) > 1
SELECT TOP 1 column1, COUNT(DISTINCT column2)
FROM table
GROUP BY column1
HAVING COUNT(DISTINCT column2) > 1
SELECT TOP 1 column1, column2, COUNT(DISTINCT column3)
FROM table
GROUP BY column1, column2
HAVING COUNT(DISTINCT column3) > 1
我对每个级别都有一个查询,并且所有查询必须返回一个非空结果集才能通过单元测试。
我真正的问题是如何将上面的SQL代码复制/转换为LINQ?
谢谢,但你错过了我的观点 - 我添加了更多的解释来帮助澄清。 – 2011-01-26 19:59:54
@罗德尼,我想我明白了,并且我描述了什么(确保你在伪代码之后阅读段落)执行你在澄清中添加的相同测试(并且更高效地引导)。唯一的区别是你已经添加了使用LINQ的细节,并且因为我没有使用LINQ,所以我会退出。 – 2011-01-26 23:04:15