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

4
我该如何使用动态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");

但是这样做行不通。会抛出一个解析异常,错误信息为“不存在适用的聚合方法‘Where’”。谢谢您的提前帮助。
1个回答

7

试试这个:

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

或者

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

兄弟,你真救了我!我无法理解这个Linq,而且文档也不是很完整。我在哪里可以学习更多关于它的查询? - Ariel
1
请查看文档和示例代码,网址为http://system-linq-dynamic-core.azurewebsites.net/html/a5ecbe15-aade-af7f-4860-6c5c412a34b4.htm。 - Stef Heyenrath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接