问题
How can I build the following LINQ query with the Dynamic Linq library (System.Linq.Dynamic)?
var roles = rolesCollection.Where(r => r.AssignedUsers.Where(u => u.Name.FirstName == "Patrick").Count() > 0);
rolesCollection and AssignedUsers are collections which implement the IEnumerable interface.
I was thinking about doing something like this:
rolesCollection.Where("AssignedUsers.Where(\"Name.FirstName == 'Patrick'\").Count() > 0");
But that doesn't work. A ParseException with the message "No applicable aggregate method 'Where' exists" is thrown.
Thanks in advance.
回答1:
Try this:
rolesCollection
.Where("AssignedUsers.Where(Name.FirstName == \"Patrick\").Any()");
or
var userName = "Patrick";
rolesCollection
.Where("AssignedUsers.Where(Name.FirstName == @0).Any()", userName);
来源:https://stackoverflow.com/questions/10314708/how-to-build-a-nested-query-with-the-dynamic-linq-library