If I assume it BattleUserSpecifications.BattleIdIsEqualTo(int battleId)looks similar return bu => bu.BattleId == battleId;, I get the following while working with the new specification:
public static class BattleUserSpecifications
{
public static Expression<Func<BattleUser, bool>> FilterByDateTime(
IQueryable<BattleUser> battleUsers)
{
return bu => bu.DateTime == battleUsers
.Where(bu1 => bu1.BattleId == bu.BattleId)
.Max(bu2 => bu2.DateTime);
}
}
:
var query = ctx.BattlesUsers.Where(
BattleUserSpecifications.FilterByDateTime(ctx.BattlesUsers));
, , , , . , . " " , , , , MS/EF , . , , .