0

我在这里看到很多关于 String.Concat 使用失败的帖子;EF 文档说它确实支持 concat,但只支持以下三个重载:

System.String Concat(String str0, String str1)
System.String Concat(String str0, String str1, String str2)
System.String Concat(String str0, String str1, String str2, String str03)

我遇到的问题是 VB LINQ 默认使用

System.String Concat(ParamArray values As String()) 

默认情况下重载,所以我得到一个错误。有没有办法在 VB 的 EF 查询中强制我想要哪个重载?我使用的查询如下:

from x in table
group join y ...
.
.
select New With { .Text = String.Concat(SqlFunctions.Convert(x.ID), " - ", if (y is null, "", y.Name)) }

即使使用以下选项:

select New With { .Text = String.Concat(SqlFunctions.Convert(x.ID), " - ", "TEST NAME") }

也失败了,因为它使用数组重载,而不是参数重载。有没有办法让它工作?

4

1 回答 1

2

您可以尝试使用命名参数

select New With { .Text = String.Concat(str0:=SqlFunctions.Convert(x.ID), str1:=" - ", str2:="TEST NAME") }
于 2013-09-18T15:45:16.363 回答