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;

その ChallengeId を保持する userChallenge が複数あります。最初のものだけを選択するにはどうすればよいですか?

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

Firstまたはを使用FirstOrDefaultして、リストの最初の項目を取得できます。アイテムが見つからない場合はFirstOrDefault戻りますが、「シーケンスに要素が含まれていません」というエラーで失敗します。nullFirst

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