【问题标题】:Cannot implicitly convert type System.Linq.IQueryable<string> to string无法将 System.Linq.IQueryable<string> 类型隐式转换为字符串
【发布时间】:2013-11-09 11:37:04
【问题描述】:

我有两个名为 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 类型隐式转换为字符串

我哪里错了?

【问题讨论】:

    标签: c# linq entity-framework iqueryable


    【解决方案1】:

    你应该使用 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;
     }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      • 1970-01-01
      • 2013-01-17
      • 2018-10-29
      • 2011-03-25
      • 1970-01-01
      相关资源
      最近更新 更多