Reputation: 5104
Say there are 5 records from the query, how do I get the top 1 records? This is my current code.
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>();
}
Upvotes: 3
Views: 6102
Reputation: 1456
For the first record you can try:
return (from a in dc.Applications where a.UserId == userId && a.chr_Version == version select a).FirstOrDefault();
For the first N use:
return (from a in dc.Applications where a.UserId == userId && a.chr_Version == version select a).Take(N);
Upvotes: 1
Reputation: 160862
Just use FirstOrDefault()
instead:
return (from a in dc.Applications
where a.UserId == userId && a.chr_Version == version
select a).FirstOrDefault<Application>();
SingleOrDefault()
will throw an exception if there is more than one record, FirstOrDefault()
will just take the first one.
Also you shouldn't have to cast to Application
- your record already is of type Application
.
Upvotes: 7