【问题标题】:Using cast when joining tables连接表时使用强制转换
【发布时间】:2017-05-30 09:24:35
【问题描述】:

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

一个是 int,另一个是 long,所以当实体框架将 LINQ 连接到 SQL 表达式时,我在 JOIN 条件下得到了类似的东西:CAST( [Extent1].[KundeID] AS bigint) = [Extent2].[ClientNumber]

正因为如此,KundeID 列上的索引被忽略并且加入非常慢。

是否可以在转换值上创建和索引,所以我在CAST( [KundeID] AS bigint) 而不是[KundeID] 上有索引?或任何其他可能有效的解决方案..

【问题讨论】:

标签: sql-server entity-framework linq indexing


【解决方案1】:

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

【讨论】:

  • 我在两列都有索引。所以它们都不应该被转换。
  • 那么我认为您需要按照上面的建议添加计算机列和索引。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-19
  • 1970-01-01
相关资源
最近更新 更多