【问题标题】:String based Dynamic Linq - Nested Where clause基于字符串的动态 Linq - 嵌套 Where 子句
【发布时间】:2017-11-20 19:52:02
【问题描述】:

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

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

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

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

【问题讨论】:

  • 是加入选项吗?
  • 如果我可以通过 where 子句中的字符串进行连接,是的。好主意。
  • 您有可用的 AssignedUsers 对象吗?
  • 不,我只需要处理示例的字符串部分。
  • 分配的用户从哪里来?需要完整的例子请

标签: c# dynamic-linq


【解决方案1】:

你想要这样的东西吗?

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

【讨论】:

  • 不,我只能在上面示例的字符串部分中工作。我不能做传统的 linq。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2021-06-21
    • 1970-01-01
    • 1970-01-01
    • 2021-07-30
    • 1970-01-01
    相关资源
    最近更新 更多