“强制转换为值类型'布尔值'失败,因为具体化值为 null”,当没有任何内容为空时
本文关键字:null 任何内 失败 转换 类型 布尔值 因为 具体化 | 更新日期: 2023-09-27 18:17:22
我有这一行
if (EF.ctx.Searches.Any(x => x.SearchTerm == _searchTerm && x.IpAddress == ip && x.Time > dtRecent))
随机抛出此错误(很少,不可重现(
强制转换为值类型"布尔值"失败,因为具体化值为 null。结果类型的泛型参数或查询必须使用可为 null 的类型。
在数据库中,只有 IpAddress 可为空(但到目前为止,没有具有空 IpAddress 的记录(。
每次抛出错误时,没有一个变量为空。
最接近的类似问题是 Queryable.Any(( 返回 null?
但是这个错误对我来说仍然没有意义。
我真的很好奇,那行到底是什么可以空的?
堆栈跟踪:
at System.Data.Common.Internal.Materialization.Shaper.ErrorHandlingValueReader
1.GetValue(DbDataReader reader, Int32 ordinal) at lambda_method(Closure , Shaper ) at System.Data.Common.Internal.Materialization.Coordinator
1.ReadNextElement(Shaper shaper( at System.Data.Common.Internal.Materialization.Shaper1.SimpleEnumerator.MoveNext() at System.Linq.Enumerable.Single[TSource](IEnumerable
1 source( at System.Data.Objects.ELinq.ObjectQueryProvider.b__3[TResult](IEnumerable1 sequence) at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable
1 query, Expression queryRoot( at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute[S](表达式表达式( at System.Linq.Queryable.Any[TSource](IQueryable1 source, Expression
1 谓词( 在[我的代码,上面的行]
就我而言,就像数据库有一些变化,所以我们清理了一些表,仅此而已。
我的意思是建议是修改您的数据库。