当前位置:  开发笔记 > 编程语言 > 正文

如何获得Linq to Entity的最大ID?

如何解决《如何获得LinqtoEntity的最大ID?》经验,为你挑选了4个好方法。

我有一个表用户,它有一个标识列UserID,现在什么是正确的Linq to Entity代码行,它会返回最大值UserID

我试过了:

using (MyDBEntities db = new MyDBEntities())
{
    var User = db.Users.Last();
    // or
    var User = db.Users.Max();

    return user.UserID;
}

但似乎LastMax没有得到支持.

有任何想法吗?



1> Jonas Kongsl..:

这样做

db.Users.OrderByDescending(u => u.UserId).FirstOrDefault();


与Max(u => u.userId)解决方案相比,有人知道此解决方案的性能吗?

2> 小智..:

试试这个

int intIdt = db.Users.Max(u => u.UserId);

更新:

如果没有记录然后使用上面的代码生成异常试试这个

int? intIdt = db.Users.Max(u => (int?)u.UserId);


是仅仅是我还是这种风格比Jonas Kongslund的答案更具可读性?
我更喜欢这个答案
@BornToCode这取决于你实际上要做什么.这个解决方案回答了问题(它获得了最大id),而Jonas Kongslund的答案返回了具有最大id的对象.

3> 小智..:

NisaPrieto

Users user = bd.Users.Where(u=> u.UserAge > 21).Max(u => u.UserID); 

因为MAX返回与该字段相同类型的变量,所以在这种情况下是INT而不是User对象.



4> Harsha.Vaswa..:
var max = db.Users.DefaultIfEmpty().Max(r => r == null ? 0 : r.ModelID);

当db中没有记录时,它将返回0,没有异常.


r => r?.ModelId ?? 0 - 新C#中的快捷方式
推荐阅读
手机用户2402851155
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有