Сообщение об ошибке: последовательность не содержит элементов - PullRequest
0 голосов
/ 06 марта 2012

Я использую Connection.db.Single<Test>("select * from Test WHERE ID= " + id) для теста следующим образом:

Assert.IsNull(Connection.db.Single<Test>("select * from Test WHERE ID= " + id));

Я знаю, что набор результатов должен быть нулевым, поскольку нет строки для значения идентификатора, который я передаю. Однако ошибка выдается следующим образом:

Последовательность не содержит элементов, а подробности исключений: System.InvalidOperationException не обрабатывается кодом пользователя. Сообщение = последовательность не содержит элементов Источник = System.Core Трассировки стека: в System.Linq.Enumerable.Single [TSource] (источник IEnumerable`1) в PetaPoco.Database.Single [T] (String sql, Object [] args) в C: \ Dev \ Models \ PetaPoco.cs: строка 1120

  1. Не могу ли я использовать Single для проверки на ноль?
  2. Есть ли лучший метод для проверки Asset.IsNUll?

Ответы [ 2 ]

0 голосов
/ 07 марта 2012

Использование:

Assert.IsNull(Connection.db.SingleOrDefault<Test>("select * from Test WHERE ID= " + id));
0 голосов
/ 06 марта 2012

используйте Any () или FirstOrDefault, как в:

if ( context.Product.Any( x => x.ProductId == 1 ) ) ... 
...