The real problem with the question/answer linked in the description is the use of custom methods as part of the expression.

This type of exception is normally about types of queries that are not currently supported by XConnect.

The blocking problem on this one is trying to query on properties of a date.

Comparisons with this shape are supported:
`c.PersonalInformation().DateField > startOfMonth && c.PersonalInformation().DateField < endOfMonth `

While queries with this shape don’t:
c.PersonalInformation().DateField.Month == month

Unfortunately for something like birthdays, it means your only option is to check the date is within the start and end of the day of the year for all the possible years you allow your users to enter.

That would work, but other alternatives are: 

 1. have a separate field/facet with the birthday in the shape you need. This only works if you control what is writing to that facet.
 2. same field/facet as above, but write to it from a XConnect facet.