gpt4 book ai didi

.net - dynamic-linq Select 中的字符串连接

转载 作者:行者123 更新时间:2023-12-01 11:17:42 25 4
gpt4 key购买 nike

我正在尝试返回一个新列,它是 idname 的串联,中间有一个连字符,使用 dynamic-linq:

query.Select("new(id, name, id & " - " & name As idName")

但是,即使没有连字符,我什至无法进行简单的连接:

query.Select("new(id, name, id & name As idName")

这会引发 System.NotSupportedException

LINQ to Entities does not recognize the method System.String Concat(System.Object, System.Object) method, and this method cannot be translated into a store expression.

有没有办法解决这个问题,如果有的话,我还如何以动态 linq 可以解释的方式将引用的部分 "- " 添加到表达式中,我也想idname 是变量,因为它们会根据用户的选择而变化?

注意:

  • 我正在使用 dynamic-linq,因为我想要连接的列的名称会根据用户选择而变化,而且我已经在使用 dynamic-linq 来处理 Where 子句)。
  • idname 列都是字符串类型

最佳答案

System.Linq.Dynamic NuGet 包列表 https://github.com/kahanu/System.Linq.Dynamic作为项目页面。 此处,示例来自 Scott Guthrie 的 original 2008 blog动态 LINQ 正在转移到 GitHub 项目的 wiki ,并且正在扩展文档。

但是,通过 issues list 查看, 存储库似乎已经死亡/垂死 ( discussion here )。目前最活跃fork/NuGet package似乎是 System.Linq.Dynamic.Core(支持 .NET 标准和 .NET Core)。

原始 System.Linq.Dynamic 中的文档和示例目前更为广泛,但两个维基都有关于 dynamic expressions 的部分和 expression language其中包括有关运算符的部分。这包括串联:

x & y String concatenation. Operands may be of any type.

在我的测试中,如果您从 System.Linq.Dynamic NuGet 包切换到 System.Linq.Dynamic.Core 包(您不必使用 .NET Core,它也适用于其他版本的 .NET)。

Imports System.Linq.Dynamic.Core

query.Select("new(id & name As id_name)")

关于.net - dynamic-linq Select 中的字符串连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48485985/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com