如何透過WCF Data Services呼叫Store Procedure
我想許多人都知道.NET從3.5開始支援REST服務,且REST服務幾乎快紅遍半邊天了,當中WCF Data Services則是其中一種應用,WCF Data Services後端的實際存取資料庫的核心為Entity Framework,相信許多人都比我還熟Entity Framework,所以筆者就不多說了。筆者今天必須透過WCF Data Services來存取SQL Server 2008的Store Procedure,這個Store Procedure其實是個.NET Assembly,因此順道將處理的過程寫一個Sample檔並改以Northwind資料實做一遍記錄下來(已經熟悉的朋友就跳著讀吧^^)。 首先筆者以VS 2010先建立一個空網站: 並加入一個ADO.NET 實體資料模型,並加入「HelloWorld」的預存程序,然後將命名空間設定為「NorthwindModel」: 此預存程序為一個.NET Assembly的應用程式,他會傳回一個字串型態的物件,不過這邊在使用Entity Framework呼叫Store Procedure時還須做一些處理,因為Entity Framework在更新資料庫模型時項目如果是Store Procedure或function時並不會自動產生程式碼,若開啟NorthwindModel.Designer.cs起來看,會發現只有「建構函式」與「部分方法」這兩個原先既有的區塊,如下: 這個時候需要到模型瀏覽器NorthwindModelEntityContainer. NorthwindEntities函式匯入 項目上面點選滑鼠右鍵,並選擇「加入函式匯入」,如下圖: 這時會出現「加入函式匯入」對話框,首先選擇預存程序名稱,並將函式名稱設為SP_HelloWorld,然後設定傳回值為純量的String型態,如下設定畫面: 完成後模型瀏覽器馬上會出現SP_HelloWorld這個函式的對應 並且會對 NorthwindModel.Designer.cs產生一段Function Import的程式碼,程式碼中看見我們剛剛設定的SP_HelloWorld方法,如下: /// ///沒有可用的中繼資料文件。 /// /// 沒有可用的中繼資料文件。 ...