Предоставить выражение для subquery

У меня есть следующий запрос 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;
}
5
задан SiberianGuy 12 August 2011 в 08:31
поделиться