这是我的原始查询
public UserChallenge GetUserChallenge(int userId, int challengeId)
{
var result = from userChallenge in DataContext.UserChallenges
where userChallenge.UserId == userId && userChallenge.ChallengeId == challengeId
select userChallenge;
这是修改后的查询
var result = from userChallenge in DataContext.UserChallenges
where userChallenge.ChallengeId == challengeId
select userChallenge;
有超过1个userChallenge持有ChallengeId。我怎样才能只选择第一个?
答案 0 :(得分:3)
查看FirstOrDefault。
var result = (from userChallenge in DataContext.UserChallenges
where userChallenge.UserId == userId && userChallenge.ChallengeId == challengeId
select userChallenge).FirstOrDefault();
但从长远来看,确定一种唯一识别记录的方法可能会更有帮助。
答案 1 :(得分:0)
您可以使用First
或FirstOrDefault
来获取列表中的第一项。如果找不到任何项,则FirstOrDefault
会返回null
,而First
会因“Sequence contains no elements”错误而失败。
var result = (from userChallenge in DataContext.UserChallenges
where userChallenge.ChallengeId == challengeId
select userChallenge).FirstOrDefault();