2013-09-16 151 views
0

我有一個SQL Scalar-值函數,它將自定義表類型作爲其唯一參數。這個表類型參數是一列整數。 SQL函數計算數據集的中位數並返回結果整數。使用Linq to SQL調用帶有自定義表類型參數的SQL函數時遇到問題

我在我的Web表單Web應用程序(用C#編寫)中顯示了一個儀表板,其中顯示了一些有趣的指標。目前,我有一個IQueryable我的自定義數據類型被過濾下來,然後我被迫枚舉整個整數列我想要的中位數。目前,我有一個本地函數,它接受一個I​​Enumerable並返回一箇中位數的整數。

我的問題是,枚舉IQueryable來計算中位數總共拉動了成千上萬的記錄,並導致由多餘的SQL流量引起的性能問題。我想用我的SQL函數來計算SQL端的IQueryable的中位數來緩解這個問題。由於該函數採用自定義表格類型,因此我很遺憾如何使其發揮作用。

任何指導將不勝感激!

回答

0

AFAIK自定義表類型只能通過ADO.NET數據庫通過.NET SQL客戶端進行處理,因此您需要使用datatable作爲參數調用您的函數,而ienumerable不會將其切斷。