WHERE子句中的LINQ to SQL MAX

Mic*_* H. 5 linq linq-to-entities entity-framework linq-to-sql

我是Linq的新手,所以我遇到了困难.我想要实现的是:

SELECT id, name, password
FROM users u
WHERE u.id = (SELECT MAX(u1.id) FROM users u1);
Run Code Online (Sandbox Code Playgroud)

我的Linq是:

var dbUsers = from u in context.Users
              where u.Id == (context.Users.Max(u1 => u1.Id))
              select u;
Run Code Online (Sandbox Code Playgroud)

但我总是以下列例外结束:

无法创建"Bla.Users"类型的常量值.在此上下文中仅支持原始类型(例如Int32,String和Guid').

这是用户类:

public class Users
    {
        [Key]
        public int Id { get; set; }
        public string Name { get; set; }
        public string Password { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的上下文类:

 public class EFDbContext : DbContext
    {
        public DbSet<User> Users{ get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

Adu*_*cci 7

您需要选择该ID属性

var dbUsers = from u in context.Users
              where u.Id == (context.Users.Select(u1 => u1.Id).Max())
              select u;
Run Code Online (Sandbox Code Playgroud)