我在这里看到很多关于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") }
也失败,因为它使用数组重载,而不是参数重载。有没有办法让它发挥作用?
答案 0 :(得分:2)
您可以尝试使用命名参数
select New With { .Text = String.Concat(str0:=SqlFunctions.Convert(x.ID), str1:=" - ", str2:="TEST NAME") }