首页 > 解决方案 > LINQ - FirstOrDefault() 是否总是返回相同的记录?

问题描述

如果我有以下“用户”表

UserName UserID
-------- ------
abc      1
xyz      2
pqr      2

和以下 linq 查询:

_context.User.OrderByDescending(x => x.UserID).FirstOrDefault();

结果总是一致的吗?

因为我总是会得到用户名“xyz”的用户或用户名“pqr”的用户,还是随机的?

标签: c#sqlentity-frameworklinqlinq-to-entities

解决方案


有点狡猾,是的,FirstOrDefault始终返回序列中的“第一个”项目(如果没有项目,则返回默认值)。可以改变的是OrderByDescending. 您有两个具有相同UserId值的项目,因此当您要求按该值排序的项目时,SQL 不保证具有相同 ID 的项目的顺序每次都相同。


推荐阅读