序列不包含 asp 核心和 sql 服务器 2016 中的任何元素

Sequence contains no elements in asp core and sql server 2016

我需要 return 来自数据库的信息 T-SQL 并且我正在使用 dapper。

我写了这段代码:

SELECT *
FROM UserActivetionCode UA 
WHERE UA.Username=@Username 
AND UA.ActivetionCode= @ActivetionCode 
AND UA.ExpireTime > GETDATE()

我正在使用此代码:

var find = await roleConnection.QueryFirstAsync(command, new { 
    @ActivetionCode = ActivetionCode, 
    @Username = Username });

但它向我显示了这个错误:

Sequence contains no elements

这个错误意味着查询没有return任何结果。
如果你不想得到它,使用QueryFirstOrDefaultAsync。 如果查询 return 没有行,这将导致 default(T)T 是查询应该 return 的任何数据类型)。

但是,QueryFirst 暗示结果集中的已知顺序,您的查询没有提供(因为它没有 order by 子句),无论如何,我怀疑UsernameActivetionCode 的组合应该是唯一的。在那种情况下,我会选择 QuerySingleOrDefault,如果查询 return 的结果不止一个,这将引发异常。