Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WCF和MVC:从web MVC应用程序调用存储过程_C#_Wcf_Asp.net Mvc 4_Razor - Fatal编程技术网

C# WCF和MVC:从web MVC应用程序调用存储过程

C# WCF和MVC:从web MVC应用程序调用存储过程,c#,wcf,asp.net-mvc-4,razor,C#,Wcf,Asp.net Mvc 4,Razor,我做了一个处理数据库的wcf服务。在那个WCF服务中,我创建了一些存储过程。现在可以从我的网络(http://myIP/myservice.csv/)访问该服务,并且可以通过以下方式访问我的存储过程:http://myIP/myservice.csv/MyProcedure?myParam=XXX 我有一个MVC4应用程序,它正在处理一些本地数据(所谓本地,我指的是一个本地数据库和一个本地WCF服务,以这种方式对请求进行调用,例如: public int getClientID(string l

我做了一个处理数据库的wcf服务。在那个WCF服务中,我创建了一些存储过程。现在可以从我的网络(http://myIP/myservice.csv/)访问该服务,并且可以通过以下方式访问我的存储过程:http://myIP/myservice.csv/MyProcedure?myParam=XXX

我有一个MVC4应用程序,它正在处理一些本地数据(所谓本地,我指的是一个本地数据库和一个本地WCF服务,以这种方式对请求进行调用,例如:

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;
    }
现在,我想插入2:删除所有使用本地数据的部分(var context=…),并用对我的WCF服务的存储过程的调用来替换它


我尝试使用右键单击->添加为服务引用->http://myIP/MysService.csv/添加我的服务,因为我无法访问存储过程。这是正确的工作方式吗?如果不是,怎么做?谢谢!

如果要使用存储过程,请查看允许您在上执行存储过程的类数据库

另一个想法是考虑使用什么样的对象关系映射工具,这可能允许SQL命令被直接执行,因为您似乎已经在代码中使用了一些LINQ。



您可以将SqlCommand类与直接连接到数据库的SqlConnection类配对,假定存储过程是MS-SQL Server或SQL Express,您希望在数据库中执行该过程。除非您的配置与我看到的非常不同,否则大多数对存储过程的调用都是通过包装一些使用连接语句和命令运行过程。如果需要,可以举一个例子。

如果要使用存储过程,请查看允许您在数据库上执行存储过程的类

另一个想法是考虑使用什么样的对象关系映射工具,这可能允许SQL命令被直接执行,因为您似乎已经在代码中使用了一些LINQ。



您可以将SqlCommand类与直接连接到数据库的SqlConnection类配对,假定存储过程是MS-SQL Server或SQL Express,您希望在数据库中执行该过程。除非您的配置与我看到的非常不同,否则大多数对存储过程的调用都是通过包装一些使用连接语句和命令来运行过程。如果需要,可以举一个例子。

谢谢,我现在正在这样做:String serviceAddress=ConfigurationManager.AppSettings[“WCFADDRESS”];DataServiceContext context=new DataServiceContext(new Uri(serviceAddress));List prod=context.Execute(新Uri(serviceAddress+“sp2?cid=“+clientID),“GET”,false)。ToList();但根据OData协议版本(即版本1,至少应该是版本3),我有一个错误。如何更新OData协议版本?谢谢,我现在正在这样做:String serviceAddress=ConfigurationManager.AppSettings[“WCFADDRESS”];DataServiceContext context=new-DataServiceContext(new-Uri(serviceAddress));List-prod=context.Execute(new-Uri(serviceAddress+“sp2?cid=“+clientID)”,“GET”,false)。ToList();但根据OData协议版本(即版本1,至少应该是版本3),我有一个错误.如何更新OData协议版本?