Vb.net Int=Char数据类型上的LINQ连接?
我编写了以下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
指定的强制转换无效
我发现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)...