0

我正在使用出色的 PetaPoco 作为小型 WCF 服务的 ORM。我有一个从 SQL 获取 5 条随机记录的小方法:

public IEnumerable<Stock> GetRandomStock(int number)
{
        Database db = new Database("MyCS");
        var sql = Sql.Builder.Append("SELECT TOP @0 * FROM Stock ORDER BY NEWID()", number);
        var results = db.Query<Stock>(sql);

        return results;
}

如果我在 Management Studio 中运行查询,我会根据我的参数获得正确数量的结果。调试时,我还可以看到我的参数正在传递给查询。

任何想法为什么我没有得到任何结果?

提前致谢。

4

1 回答 1

2

你在迭代结果吗?如果不是,则查询将不会运行。

只有在开始迭代结果时才应该使用Fetchas 来Query运行查询。Query

public IEnumerable<Stock> GetRandomStock(int number)
{
        Database db = new Database("MyCS");
        var sql = "SELECT TOP @0 * FROM Stock ORDER BY NEWID()";
        var results = db.Fetch<Stock>(sql, number);

        return results;
}
于 2013-06-16T10:49:34.297 回答