如何使用动态LINQ库构建嵌套查询

时间:2012-04-25 11:30:28

标签: c# linq .net-3.5 dynamic-linq

如何使用Dynamic Linq库(System.Linq.Dynamic)构建以下LINQ查询?

var roles = rolesCollection.Where(r => r.AssignedUsers.Where(u => u.Name.FirstName == "Patrick").Count() > 0);

rolesCollection和AssignedUsers是实现IEnumerable接口的集合。

我正在考虑做这样的事情:

rolesCollection.Where("AssignedUsers.Where(\"Name.FirstName == 'Patrick'\").Count() > 0");

但这不起作用。抛出了一个ParseException,其中包含消息“没有适用的聚合方法'在哪里'存在”。

提前致谢。

1 个答案:

答案 0 :(得分:6)

试试这个:

rolesCollection
    .Where("AssignedUsers.Where(Name.FirstName == \"Patrick\").Any()");

var userName = "Patrick";
rolesCollection
    .Where("AssignedUsers.Where(Name.FirstName == @0).Any()", userName);