【发布时间】:2017-05-30 09:24:35
【问题描述】:
我在工作中使用的是旧数据库,我需要在不同数据类型的列上连接两个表。
一个是 int,另一个是 long,所以当实体框架将 LINQ 连接到 SQL 表达式时,我在 JOIN 条件下得到了类似的东西:CAST( [Extent1].[KundeID] AS bigint) = [Extent2].[ClientNumber]。
正因为如此,KundeID 列上的索引被忽略并且加入非常慢。
是否可以在转换值上创建和索引,所以我在CAST( [KundeID] AS bigint) 而不是[KundeID] 上有索引?或任何其他可能有效的解决方案..
【问题讨论】:
-
您是否尝试过将转换后的列存储为计算列?这样您就可以向该列添加索引。有关 MS Docs 的更多信息:docs.microsoft.com/en-us/sql/relational-databases/indexes/….
-
谢谢,我会试试的。
标签: sql-server entity-framework linq indexing