0

我正在使用Connection.db.Single<Test>("select * from Test WHERE ID= " + id)如下测试:

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

我知道结果集应该为空,因为我传递的 id 值没有行。但是,会触发如下错误:

序列不包含任何元素,异常详细信息如下: System.InvalidOperationException 未被用户代码处理 Message=Sequence 不包含元素 Source=System.Core StackTrace: at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source) at PetaPoco.Database.Single[T](String sql, Object[] args) 在 C:\Dev\Models\PetaPoco.cs:line 1120

  1. 我不能使用 Single 来测试 null 吗?
  2. 有没有更好的方法来测试 Asset.IsNUll ?
4

2 回答 2

0

使用 Any() 或 FirstOrDefault,如:

if ( context.Product.Any( x => x.ProductId == 1 ) ) ... 
于 2012-03-06T11:05:29.247 回答
0

采用:

Assert.IsNull(Connection.db.SingleOrDefault<Test>("select * from Test WHERE ID= " + id));
于 2012-03-07T05:56:13.893 回答