我是Linq的新手,所以我期望遇到困难。 我想实现的是:LINQ to SQL MAX在WHERE子句中
SELECT id, name, password
FROM users u
WHERE u.id = (SELECT MAX(u1.id) FROM users u1);
我的LINQ是:
var dbUsers = from u in context.Users
where u.Id == (context.Users.Max(u1 => u1.Id))
select u;
但我始终有以下例外结束:
无法创建的恒定值键入'Bla.Users'。在此 上下文中仅支持原始类型 类型(如Int32,String和Guid)。
下面是用户等级:
public class Users
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public string Password { get; set; }
}
}
这里是我的上下文类:
public class EFDbContext : DbContext
{
public DbSet<User> Users{ get; set; }
}
同样的问题。我忘了提及我使用MySQL作为数据源。 –
如果我将最大集合移动到查询之外,事情就会起作用:int id = context.Users.Max(u1 => u1.Id)然后var dbUsers = from u in context.Users where u.Id == id 选择你; –