

新闻资讯
技术学院QuerySingle要求结果必须且仅有一行,否则抛异常;QuerySingleOrDefault允许零行(返回默认值)但拒绝多行。二者异步版本行为一致。
QuerySingle 和 QuerySingleOrDefault 都是用来查单行数据的,核心区别在于“空结果”和“多结果”时的行为不同。
它期望查询结果**必须且只能有一行**。不满足就直接抛异常:
适合业务上逻辑上必须存在唯一结果的场景,比如根据主键查用户:SELECT * FROM Users WHERE Id = @id。
它接受“没有结果”,但依然拒绝“多个结果”:
适合可能不存在、但绝不可能重复的查询,比如按唯一邮箱查用户:SELECT * FROM Users WHERE Email = @email。
QuerySingle
→ 有1条:返回 User 实例
→ 0条 或 ≥2条:全部报错
QuerySingleOrDefault
→ 有1条:返回 User 实例
→ 0条:返回 null
→ ≥2条:报错
生产环境建议优先用异步方法:
QuerySingleAsync() 和 QuerySingleOrDefaultAsync()
Task
基本上就这些。