Vb.net Int=Char数据类型上的LINQ连接?

Vb.net Int=Char数据类型上的LINQ连接?,vb.net,linq,Vb.net,Linq,我编写了以下LINQ查询,以基于一个公共(我认为是)整数连接两个表: 但是,它抛出异常指定的强制转换无效 我发现BrandId列是一个int,SalesCategory01Code列被设置为char(6) 是否可以修改此选项并使用LINQ使联接工作?SQLnchar映射到C#字符串(),因此相应地强制转换它并使用Int32.Parse: Dim test = (From forecast In dtForecast.AsEnumerable() Join dns In dtDns.As

我编写了以下LINQ查询,以基于一个公共(我认为是)整数连接两个表:

但是,它抛出异常
指定的强制转换无效

我发现BrandId列是一个
int
,SalesCategory01Code列被设置为
char(6)


是否可以修改此选项并使用LINQ使联接工作?

SQL
nchar
映射到C#
字符串
(),因此相应地强制转换它并使用
Int32.Parse

Dim test = 
    (From forecast In dtForecast.AsEnumerable() Join dns In dtDns.AsEnumerable()
       On forecast.Field(Of Int32)("BrandId") 
       Equals Int32.Parse(dns.Field(Of String)("SalesCategory01Code"))
    Select New With 
    { 
         .Key = forecast.Field(Of String)("BrandName") 
    }).ToList()
您还可以修改选择数据并将其强制转换到其中的sql查询:

 SELECT SalesCategory01Code = CAST(SalesCategory01Code as int)...

int
只有4个字节时,您希望如何将
char(6)
转换为
int
。@MarcinJuraszek我认为这更像是一个数据库设计问题,因为数据库中的
MAX(SalesCategory01Code)
600
char(1)
在我的SQL/C世界中映射到
char
 SELECT SalesCategory01Code = CAST(SalesCategory01Code as int)...