4

我有两个名为 Rank 和 CrewMembers 的表。我想根据 CrewMember 的 id 获取 Rank 表中存在的 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 类型隐式转换为字符串

我哪里错了?

4

1 回答 1

13

您应该使用 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;
 }
于 2013-11-09T11:38:33.533 回答