在连接表时使用强制转换

时间:2017-05-30 09:24:36

标签: sql-server entity-framework linq indexing

我在我的工作中使用遗留数据库,我需要在不同数据类型的列上连接两个表。

一个是int而另一个是long,所以当Entity框架将LINQ联接转换为SQL表达式时,我在JOIN条件中得到了类似的内容:CAST( [Extent1].[KundeID] AS bigint) = [Extent2].[ClientNumber]

因此,KundeID columd上的索引被忽略,加入非常慢。

是否可以创建铸造值并对其进行索引,因此我在CAST( [KundeID] AS bigint)而不是[KundeID]上设有索引?或任何其他可能有用的解决方案..

1 个答案:

答案 0 :(得分:0)

您可以尝试在Convert.ToInt32()上应用[Extent2].[ClientNumber],以便可以使用索引吗?