2013-07-09 66 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

相关问题