0

这是我原来的查询

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。我怎样才能只选择第一个?

4

2 回答 2

3

查看 FirstOrDefault。

var result = (from userChallenge in DataContext.UserChallenges
               where userChallenge.UserId == userId && userChallenge.ChallengeId == challengeId
               select userChallenge).FirstOrDefault();

但从长远来看,确定一种唯一标识您的记录的方法可能会更有帮助。

于 2013-02-25T21:54:23.580 回答
0

您可以使用FirstFirstOrDefault来获取列表中的第一项。FirstOrDefault如果未找到任何项目,则返回null,而First失败并显示“序列不包含元素”错误。

var result = (from userChallenge in DataContext.UserChallenges
  where userChallenge.ChallengeId == challengeId
  select userChallenge).FirstOrDefault();
于 2013-02-25T21:55:31.863 回答