2013-07-09 72 views
1

我已經完成了一個處理數據庫的wcf服務。在那個WCF服務中,我創建了一些存儲過程。該服務現在可以從我的網絡訪問(http://myIP/MysService.csv/),我的存儲過程可以這樣訪問:http://myIP/MysService.csv/MyProcedure?myParam=XXX。WCF和MVC:從web mvc應用程序調用存儲過程

了我在與一些地方的數據的工作(由地方我指的是本地數據庫和本地WCF服務MVC4程序,名字叫這樣的舉例請求:

public int getClientID(string login) 
    { 
     var context = new MyLocalService.MyLocalEntityEntities(new Uri(http://localhost:12345/MyWCF.svc/)); 
     var persons = context.PERSON.ToList(); 

     var cli = from person in persons 
        where person.LOGIN == login 
        select person.CLIENT_ID; 

     int cliID = (int) cli.First(); 
     return cliID; 
    } 

現在的我, d喜歡插入2:刪除與本地數據(var context = ...)一起工作的所有部分,並將其替換爲對我的WCF服務的存儲過程的調用如何操作?

I'我嘗試添加我的服務,使用右鍵單擊 - >添加爲服務引用 - > http://myIP/MysService.csv/地址由我無法訪問存儲過程。是否正確的方式工作,如果不是,h要做到這一點?謝謝 !

回答

1

如果你打算使用存儲過程再看看SqlCommand類,可以讓你在數據庫上執行存儲過程。

另一個想法是考慮你使用的是什麼樣的對象關係映射工具可以允許SQL命令直接執行,因爲你似乎已經在你的代碼中使用一些LINQ。


你會配對SqlCommand類與具有直接連接到數據庫,假設該存儲過程SqlConnection類是希望在DB執行過程MS-SQL Server或SQL Express的。除非你的配置與我所看到的完全不同,否則大多數對存儲過程的調用都是通過包裝一些使用連接和命令語句來運行該過程來完成的。 Calling stored procedure from C# code有一個例子,如果你需要它。

+0

謝謝你,現在我正在做這樣:字符串serviceAddress = ConfigurationManager.AppSettings [ 「WCFADDRESS」]; DataServiceContext上下文=新DataServiceContext(新URI(serviceAddress)); 列表 PROD = context.Execute (新URI(serviceAddress + 「SP2 CID =?」 + clientID的), 「GET」,假).ToList();但是,根據OData協議版本(即版本1,我應該至少使用版本3),我有一個錯誤。如何更新OData協議版本? – Derbie

相關問題