2013-06-14 2 views
0

Я использую блестящий PetaPoco как мой ORM для небольшой службы WCF. У меня есть небольшой метод, который получает 5 случайных записей из SQL:PetaPoco не возвращает результаты при заказе NEWID()

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, я получаю правильное количество результатов, основанных на моем параметре. при отладке я также вижу, что мой параметр передается в запрос.

Любые идеи, по которым я не получаю результатов?

Заранее спасибо.

ответ

2

Вы итерируете результаты? Если нет, запрос не будет выполняться.

Вы должны использовать Fetch вместо 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; 
}