EF使用Wrong String.Concat

时间:2013-09-18 14:44:06

标签: .net vb.net string linq entity-framework

我在这里看到很多关于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") }

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

1 个答案:

答案 0 :(得分:2)

您可以尝试使用命名参数

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