0

我應該遵循在實體框架中使用以下sql標量值函數的步驟。訪問linq內的實體框架6中的數據庫標量值函數

select dbo.GetDefaultAccount(5,1,48) 

我試過EDMX的相同的命名空間下創建一個靜態類和定義函數如下

[EdmFunction("Model.Store", "GetDefaultAccount")] 
    public static int? GetDefaultAccount(int id, Int16 type, int assocId) 
    { 
     throw new NotSupportedException(); 
    } 

雖然從LINQ訪問它像下面

var Accountno = (from s in dbcontext.TranSetups select new { Accountno = CutomEdmxFunctions.GetDefaultAccount(5, 1, 48) }) 
         .FirstOrDefault().Accountno; 

我得到的以下錯誤

不能被翻譯成LINQ到實體存儲表達,因爲沒有超載傳遞的參數匹配

感謝

回答

0

不幸的是,在實體框架的工作標量值函數並不像它應該是一樣容易。經過長時間的搜索後,我發現只有兩種方法可以使用標量值函數,最好是here,但請記住:從數據庫更新EDM時,對.edmx文件的所有編輯都將丟失。您將不得不每次重新編輯.edmx文件。祝你好運。

+0

鏈接只有答案是不鼓勵的。 \t 請引用參考鏈接中答案的基本部分,因爲如果鏈接的頁面發生變化,答案可能會失效。 –