如何从查询中获取前 1 条记录

  • 本文关键字:记录 获取 查询 linq
  • 更新时间 :
  • 英文 :


假设查询中有 5 条记录,如何获取前 1 条记录?这是我当前的代码。

public Application GetByUserIdAndVersion(int userId, string version)
{
    VettingDataContext dc = new VettingDataContext(_connString);
    return (from a in dc.Applications
            where a.UserId == userId && a.chr_Version == version
            select a).SingleOrDefault<Application>();
}

只需改用FirstOrDefault()

return (from a in dc.Applications
        where a.UserId == userId && a.chr_Version == version
        select a).FirstOrDefault<Application>();

如果有多个记录,SingleOrDefault()将引发异常,FirstOrDefault()将只采用第一个记录。

此外,您不必投射到Application - 您的记录已经是 Application

对于第一条记录,您可以尝试:

return (from a in dc.Applications where a.UserId == userId && a.chr_Version == version select a).FirstOrDefault();

对于前 N 个使用:

return (from a in dc.Applications where a.UserId == userId && a.chr_Version == version select a).Take(N);

相关内容

  • 没有找到相关文章

最新更新