c# - LINQ - FirstOrDefault() 是否总是返回相同的记录?
问题描述
如果我有以下“用户”表
UserName UserID
-------- ------
abc 1
xyz 2
pqr 2
和以下 linq 查询:
_context.User.OrderByDescending(x => x.UserID).FirstOrDefault();
结果总是一致的吗?
因为我总是会得到用户名“xyz”的用户或用户名“pqr”的用户,还是随机的?
解决方案
有点狡猾,是的,FirstOrDefault
将始终返回序列中的“第一个”项目(如果没有项目,则返回默认值)。可以改变的是OrderByDescending
. 您有两个具有相同UserId
值的项目,因此当您要求按该值排序的项目时,SQL 不保证具有相同 ID 的项目的顺序每次都相同。
推荐阅读
- powerbi - 在 powerbi 中使用相同的过滤器过滤两个表
- ios - 出现错误 [UIImage extent]:无法识别的选择器发送到实例
- tableau-api - Tableau - 如何检查一个值是否等于另一行和另一列的值
- php - 了解 pm.max_children 调优
- amazon-web-services - 将 nginx-ingress 绑定到静态 IP 地址
- sql-server - sum(case When.. AND) 有多个条件不起作用
- amazon-web-services - 调用 ModifyRule 操作时的 AWS ELB OperationNotPermitted
- java - Smack XMPP - 连接不再连接。完成=真 smResumptionPossible=假
- c# - 注册模块 Autofac
- java - Apache Jena 保存 ttl 文件