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

时间:2011-05-10 19:31:48

标签: 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>();
}

2 个答案:

答案 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);