我正在使用SubSonic 3版本的Active记录模式。我的要求是从表中获得3个随机行。经过一些谷歌搜索我发现我可以在SQL中使用NewID函数,但我不知道使用sub sonic获取Randow行 谢谢
答案 0 :(得分:1)
亚音速总是存在“后门”。它被称为InlineQuery(SubSonic 2.2)或CodingHorror(SubSonic 3):http://subsonicproject.com/docs/CodingHorror
您的SQL查询可能如下所示:
SELECT top 3
newid() as sortorder, id
FROM some_table
ORDER by sortorder
所以我建议这样的事情
List<int> result = new CodingHorror(@"
SELECT TOP 3
id, newid() as sortorder
FROM some_table
ORDER by sortorder
).ExecuteTypedList<int>();
如果它没有从亚音速2.2更改为3,则当使用valuetype作为泛型类型参数时,ExcecuteTypedList()方法将返回查询中的第一个元素。在这种情况下:id。
这也可能有效:
List<Product> result = new CodingHorror(@"
SELECT TOP 3
*, newid() as sortorder
FROM products
ORDER by sortorder
).ExecuteTypedList<Product>();