基于字符串的动态 Linq - 嵌套 Where 子句

String based Dynamic Linq - Nested Where clause

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

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

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

知道如何完成这个吗?我无法传入对象,在通用化 API 搜索方法的上下文中,这必须是纯粹的基于字符串的解决方案。这只是我需要的一个示例……我无法通过代码加入或执行任何操作。我在示例代码的基于字符串的部分寻找解决方案。

你想要这样的东西吗?

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

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

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

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