CLR type '{0}' cannot be used as a query output or input type to a user-defined operator or aggregate because it either does ...

CLR type '{0}' cannot be used as a query output or input type to a user-defined operator or aggregate because it either does not have a default constructor, or it has a public property that does not have a setter method. This can occur when the type is an anonymous type generated by the compiler. To resolve this problem, create an explicit type.