Reputation: 855
I have a LINQ query which works fine when I test it in LINQPad agains my SQL Server database, however when I test it against my Entity Framework context (which is required in my LightSwitch .NET app) it gives an error that .First() must be user as a final operation.
Table.Where(re => !re.UserSave.HasValue || re.UserSave == INT PARAMETER)
.GroupBy(re => re.UniqueKey)
.Select(g => g.FirstOrDefault(x => x.UserSave.HasValue) ?? g.First())
It suggest that using FirstOrDefault() instead, but since i call First() only if FirstOrDefault() returns false I have no idea how to get around this problem.
NotSupportedException: The method 'First' can only be used as a final query operation. Consider using the method 'FirstOrDefault' in this instance instead.
Thanks for any help!
Upvotes: 1
Views: 387
Reputation: 125620
Change your query to use FirstOrDefault
instead of 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())
Upvotes: 2