You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数据库Facture表最后一条记录查询:Max函数使用无效求助

解决获取Facture表最后一条记录的问题

嘿,我来帮你搞定这个问题!你原来的Linq写法直接在where条件里用Max(ID)是行不通的,Linq不支持这种语法哦。下面给你几种靠谱的解决方案:

  • 方法一:按ID降序排序后取第一条
    这是最直观的写法,把所有记录按ID从大到小排序,取第一条就是最新的记录:

    Facture fac = model.Facture.OrderByDescending(c => c.ID).FirstOrDefault();
    
  • 方法二:先获取最大ID再查询对应记录
    先单独拿到最大的ID值,再用这个ID匹配对应的记录,适合数据量较大的场景,能减少排序开销:

    int maxId = model.Facture.Max(c => c.ID);
    Facture fac = model.Facture.FirstOrDefault(c => c.ID == maxId);
    
  • 方法三:使用LastOrDefault(注意EF版本兼容)
    如果你的Entity Framework版本支持,也可以直接用LastOrDefault,但需要先按ID升序排序:

    Facture fac = model.Facture.OrderBy(c => c.ID).LastOrDefault();
    

    注:部分早期EF版本不支持直接调用LastOrDefault,所以前两种方法更稳妥。

另外,如果你的“最后一条”不是按ID判断,而是按创建时间这类字段,只需要把排序字段换成对应的字段即可,比如:OrderByDescending(c => c.CreationDate)。

内容的提问来源于stack exchange,提问作者Medbouk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:22:09