У меня есть следующий запрос LINQ To Entities (в упрощенном виде):
ctx.BattlesUsers.Where(bu => bu.DateTime == ctx.BattlesUsers.
Where(BattleUserSpecifications.BattleIdIsEqualTo(bu.BattleId)).
Max(bu1 => bu1.DateTime));
, который бросает исключение "Ошибка 1025... поставщика данных внутренней .NET Framework".
Проблема здесь в моем вызове спецификации. Обычным решением этой проблемы является перемещение вызова спецификационного выражения из запроса и передача выражения непосредственно в Where. Но здесь это не сработает, так как мне нужно передать bu.BattleId выражению.
Обновление.
Вот код BattleIdIEqualTo:
public static Expression<Func<Model.Entities.BattleUser, bool>> UserIdIsEqualTo(long userId)
{
return bu => bu.UserId == userId;
}