。
假设查询中有 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);