假设查询中有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>();
}
答案 0 :(得分:7)
只需使用FirstOrDefault()
:
return (from a in dc.Applications
where a.UserId == userId && a.chr_Version == version
select a).FirstOrDefault<Application>();
如果有多条记录, SingleOrDefault()
会抛出异常,FirstOrDefault()
只会占据第一条记录。
此外,您不必转发Application
- 您的记录已经是Application
类型。
答案 1 :(得分:1)
对于第一条记录,您可以尝试:
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);