2012-04-25 74 views
4

如何使用Dynamic Linq庫(System.Linq.Dynamic)構建以下LINQ查詢?如何使用動態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引發其中'存在'。

在此先感謝。

回答

6

試試這個:

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

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

它工作的感謝! – 2012-04-25 12:26:59

+0

你剛剛救了我!不能找出這個linq和文檔並不完全。我在哪裏可以瞭解更多關於它的查詢? – Terkhos 2016-04-06 18:02:01

+1

查閱http://system-linq-dynamic-core.azurewebsites.net/html/a5ecbe15-aade-af7f-4860-6c5c412a34b4.htm上的文檔+示例代碼 – 2016-06-14 16:17:56