基于字符串的Dynamic Linq - Nested Where子句

时间:2017-11-20 19:52:03

标签: c# dynamic-linq

我正在使用基于字符串的Dynamic Linq并且需要应用嵌套的where子句。

答案here让我走了一半。但是,两个表中的列具有匹配的ID。我需要能够通过别名或其他来引用,如下所示:

rolesCollection
.Where("AssignedUsers.Where(AssignedUsers.TypId == rolesCollection.TypId).Any()");

知道怎么做到这一点?我没有能力传递一个对象,这在一般的API搜索方法的上下文中必须纯粹是一个基于字符串的解决方案。这只是我需要的一个例子......我没有能力通过代码加入或任何东西。我在示例代码的基于字符串的部分中寻找解决方案。

2 个答案:

答案 0 :(得分:0)

你想要那样的东西;

rolesCollection = rolesCollection.Where(x => assignedUsers.Any(t => t.TypId == x.TypId)).ToList();

答案 1 :(得分:0)

在这个理论示例中,AssignedUsers对象应该有一个AssignedUsers_Typ集合,您可以在下面引用它,而不必引用两个表中的Typ列。

   rolesCollection.Where("AssignedUsers_Typ.Any()");

我能够使用此解决方案解决我的问题。