1

我有一个 LINQ 查询,当我在 LINQPad 中对我的 SQL Server 数据库进行测试时,它工作正常,但是当我针对我的实体框架上下文(在我的 LightSwitch .NET 应用程序中需要)测试它时,它给出了一个错误,即 .First()必须是用户作为最终操作。

Table.Where(re => !re.UserSave.HasValue || re.UserSave == INT PARAMETER)
     .GroupBy(re => re.UniqueKey)
     .Select(g => g.FirstOrDefault(x => x.UserSave.HasValue) ?? g.First())

它建议改用 FirstOrDefault() ,但由于我只在 FirstOrDefault() 返回 false 时才调用 First() 我不知道如何解决这个问题。

NotSupportedException: The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead.

谢谢你的帮助!

4

1 回答 1

2

将您的查询更改为使用FirstOrDefault,而不是First

Table.Where(re => !re.UserSave.HasValue || re.UserSave == INT PARAMETER)
     .GroupBy(re => re.UniqueKey)
     .Select(g => g.FirstOrDefault(x => x.UserSave.HasValue) ?? g.FirstOrDefault())
于 2013-04-19T10:31:43.317 回答