无法隐式转换类型System.Linq.IQueryable<string>为string。

5

我有两个名为Rank和CrewMembers的表。我想根据CrewMember的id从Rank表中获取相应的等级名称。我已将crewId作为参数传递,并根据此参数,该方法将返回该特定船员的等级。以下是我的代码-

       public string GetRank(int CrewId)
       {

        string rank = (from r1 in context.Rank
            join r2 in context.CrewMember on r1.RankId equals r2.RankId
            where r2.CrewId == CrewId
            select r1.RankName);

        return rank;
      }

当我构建代码时,出现以下错误-

无法隐式转换类型 System.Linq.IQueryable 为字符串

我错在哪里了?

1个回答

14

你应该使用FirstOrDefault或SingleOrDefault:

public string GetRank(int CrewId)
{       
    string rank = (from r1 in context.Rank
        join r2 in context.CrewMember on r1.RankId equals r2.RankId
        where r2.CrewId == CrewId
        select r1.RankName).SingleOrDefault();

    return rank;
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接