2011-05-10 283 views
3

假设查询中有5条记录,我如何获得前1条记录?这是我现在的代码。如何从查询中获得前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>(); 
} 

回答

7

只需使用FirstOrDefault()代替:如果有一个以上的记录,FirstOrDefault()将只取前一个

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

SingleOrDefault()会抛出异常。您的记录已经是Application类型。

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); 
相关问题