我正在lambda中尝试这样做:

从[表名]中选择提示,其中Answer ='answer';

到目前为止,这是我尝试过的:

    public ModelSQL.puzzlecontent GetAcrossClue(string answer)
    {

        return context.puzzlecontents.Where(c => c.Answer.Equals(answer)).Select( g => new {g.Hint});
    }


错误提示:


  无法隐式转换类型
  'System.Linq.IQueryable'到
  'iStellar.ModelSQL.puzzlecontent'。存在显式转换(
  你想念演员吗?)

最佳答案

您的问题是Select返回一个集合,而您的方法返回一个实例。

假设g.HintModelSQL.puzzlecontent实例,则应在末尾添加FirstOrDefault以检索单个项目。

我错过的一件事是您试图返回一个通过new { g.Hint }的匿名类型,这是无效的。您需要返回一个具体类型。

同样,假设g.HintModelSQL.puzzlecontent实例,您应该具有

return context.puzzlecontents
    .Where(c => c.Answer.Equals(answer))
    .Select(g => g.Hint)
    .FirstOrDefault();

关于c# - 来自SQL的Lambda表达式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18264535/

10-13 09:09