Notice how the predicate is an Expression and not just a Func. This allows the predicate expression to be translated to SQL. The other important thing to not is that you must have FieldAlias attributes on the properties of your entities like in the Order property bellow:
if(this.orders == null)
this.orders = newList<Order>();
I hope this helps. Do not hesitate to write again if you have more questions or suggestions.