2017-05-30 18 views
1

我在作業中使用遺留數據庫,我需要連接兩個不同數據類型的表。在連接表時使用轉換

一個是int,而另一種是長的,所以,當實體框架轉換LINQ加入到SQL表達我有這樣的事情在JOIN條件:CAST([Extent1].[KundeID] AS bigint) = [Extent2].[ClientNumber]

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

是否有可能創建和索引鑄造價值,所以我有索引CAST([KundeID] AS bigint)而不是[KundeID]?或任何其他解決方案,可能工作..

+1

您是否嘗試將轉換後的列存儲爲計算列?這樣你可以添加一個索引到該列。有關MS文檔的更多信息:https://docs.microsoft.com/en-us/sql/relational-databases/indexes/indexes-on-computed-columns。 – SchmitzIT

+0

謝謝,我會試試。 – Aleksa

回答

0

你可以嘗試申請Convert.ToInt32()[Extent2].[ClientNumber]所以可以使用索引?

+0

我在兩列都有索引。所以他們都不應該被轉換。 – Aleksa

+0

然後我認爲你需要按照上面的建議添加一個計算機列和索引。 – NetMage

相關問題