1

我正在尝试在 lambda 中执行此操作:

从 [tablename] 中选择提示,其中 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”。存在显式转换(您是否缺少演员表?)

4

2 回答 2

4

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

假设这g.Hint是一个ModelSQL.puzzlecontent实例,您应该FirstOrDefault在末尾添加以检索单个项目。

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

同样,假设这g.Hint是一个ModelSQL.puzzlecontent实例,你应该有

return context.puzzlecontents
    .Where(c => c.Answer.Equals(answer))
    .Select(g => g.Hint)
    .FirstOrDefault();
于 2013-08-16T01:44:58.530 回答
0
public var GetAcrossClue(string answer)
{

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

忽略这部分,谢谢克劳迪奥。来晚了还能说什么?

或者

public ModelSQL.puzzlecontent GetAcrossClue(string answer)
{

    return context.puzzlecontents.Where(c => c.Answer.Equals(answer)).Select( g => new puzzlecontent{property1 = value,property2 = etc});
} 

虽然这部分会起作用 ^

于 2013-08-16T01:47:09.793 回答