Sql 如何仅选择此dbml查询的第一行?

Sql 如何仅选择此dbml查询的第一行?,sql,linq-to-sql,Sql,Linq To Sql,这是我最初的疑问 public UserChallenge GetUserChallenge(int userId, int challengeId) { var result = from userChallenge in DataContext.UserChallenges where userChallenge.UserId == userId && userChallenge.Challe

这是我最初的疑问

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。如何仅选择第一个选项?

查看FirstOrDefault

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

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

查看FirstOrDefault

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

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

您可以使用
First
First或default
获取列表中的第一项<如果未找到项,则code>FirstOrDefault返回
null
,而
First
失败并出现“序列不包含元素”错误


您可以使用
First
FirstOrDefault
获取列表中的第一项<如果未找到项,则code>FirstOrDefault返回
null
,而
First
失败并出现“序列不包含元素”错误


@比尔,你在还原问题文本时删除了接受的答案吗?@Ellesedil否,版主不能在不删除答案的情况下删除接受复选标记。@比尔,你在还原问题文本时删除了接受的答案吗?@Ellesedil否,版主不能在不删除答案的情况下删除接受复选标记。