На моей последней работе мы видели это поведение, и потребовалось немало усилий, чтобы обойти его.
Во-первых, вам нужен IQ Toolkit, доступный в CodePlex бесплатно.В его библиотеках есть «PartialEvaluator», который может уменьшить сложность многих деревьев выражений, находя узлы, которые всегда оцениваются на более простые узлы, и заменяя ссылки на «внешние замыкания» константами.Прежде чем пытаться его сериализовать, вы захотите запустить свой IQueryable.
Затем, чтобы использовать сериализатор JSON DataContract, вы должны настроить класс, который вы хотите сериализовать, как DataContract.Есть учебники для того, чтобы сделать это повсюду;в основном вы просто декорируете класс, любые содержащиеся в нем классы и члены, которые хотите сериализовать, с помощью атрибутов.
После того, как эти две вещи на месте, ваш объект и его член IQueryable должны быть сериализованы в JSON с использованиемDataContractJsonSerializer.