On v4.0.
If I do something like
int? coachId = ...;
...
.Prefetch<SomeEntity>(mp => mp.Collection)
.FilterOn(mpd =>
(mpd.CoachId == coachId.Value || !coachId.HasValue)
it fails saying something like "equality operator is not defined for Int32 and object)". It works within the LINQ's where statement. (the problem is !coachId.HasValue).
Let me know if you need a better example.