Summary
When using the LINQ3 provider, a Where filter on enum property in combination with a Select that has a cast, throws System.ArgumentException.
Driver version 2.22.0
Using the Where and Select in isolation works, it is only when used in combination that the exception occurs.
The following query works with LINQ2 but with LINQ3 throws exception System.ArgumentException Value type of serializer is Status and does not match member type System.Int32. (Parameter 'serializer')
The 'Status' property is an enum and 'Version' is being cast from long to int. See attachment for full source.
var resultsOpen = coll.AsQueryable() .Where(x => x.Status == Status.Open) .Select(x => new ResultDoc { Name = x.Name, Version = (int)x.Version }) .ToList(); // exception