我有一个使用Entity Framework的C#应用程序。我有一个看起来像这样的表:
ID FILENO Col1 Col2 Col3
---------------------------------------
1 19873 42 129 145
2 19873 42 129 41
3 19873 42 130 18
4 19873 43 158 168
我需要按Col1
,然后按Col2
,然后按Col3
对表进行排序,并选择“最低”记录。在这种情况下,我应该选择记录2。我已经尝试过以下代码:
var model = db.Cxxxx.Where(x => x.FILENO == '19873').FirstOrDefault();
但那只是得到一个记录,不一定是“最低”记录。我知道有一个.Min<>()
选项,但我不知道它是如何工作的。
如有任何协助,不胜感激。
2条答案
按热度按时间ltqd579y1#
试试这个:
这当然假设“最低记录”是指由三个级别的排序产生的最高记录。
应另一位成员的要求,我将添加一点解释,尽管对我来说似乎很直接:
Where
方法正在按您要查找的文件号的记录筛选您的集合。OrderBy
方法基于Col1
执行第一次排序。ThenBy
基于Col2
对上一个结果执行第二次排序。下一个ThenBy
基于Col3
对上一个结果执行第三次排序。选择第一个结果应该会产生所需的记录。请注意,如果没有找到与文件号匹配的记录,则
model
将为null
。vxf3dgd42#
好的,我假设您已经正确地设置了DBContext。
为此,我们可以使用两种方法
上面的代码使用FirstOrDefault,下面的代码使用Min