在迁移旧的SQL查询时,我发现连接条件中使用的列具有不同的数据类型int& BIGINT。我不确定SQL Server中是如何支持的那样!
然而,当使用EF的Model-First风格时,这些列映射到int&分别长。
在LINQ中,我无法再编写连接条件,我也无法使用Convert.ToInt32
,因为EF在运行时无法识别这些方法。
所以我被锁定了。我该如何处理?
答案 0 :(得分:2)
int to long
您无需使用Convert.ToInt32
。你可以加入列,int和bigint之间应该没有任何问题。
长串
您可以在联接中使用SqlFunctions.ConvertString,如下所示:
var query = from x in context.Table1
join y in context.Table2
on x.StringColumn equals SqlFunctions.StringConvert((decimal)y.LongColumn).Trim()
select ...