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
SOAPWCF上的实体框架通用CRUD_Wcf_Entity Framework 4.1_Repository Pattern - Fatal编程技术网

SOAPWCF上的实体框架通用CRUD

SOAPWCF上的实体框架通用CRUD,wcf,entity-framework-4.1,repository-pattern,Wcf,Entity Framework 4.1,Repository Pattern,我正在编写一个WCF服务,它构建在实体框架ORM之上 该服务的两个客户端是Web应用程序(不是客户端)和Windows服务 我过去曾使用RepositoryPattern来简化服务中的CRUD代码。 是否可以在WCF上执行此操作 我大约有十几个对象需要对其执行CRUD,因此理想情况下,我想要一个服务合同,内容如下: IQueryable<T> GetAll(); IQueryable<T> FindBy(System.Linq.Expressions.Expression

我正在编写一个WCF服务,它构建在实体框架ORM之上

该服务的两个客户端是Web应用程序(不是客户端)和Windows服务

我过去曾使用RepositoryPattern来简化服务中的CRUD代码。 是否可以在WCF上执行此操作

我大约有十几个对象需要对其执行CRUD,因此理想情况下,我想要一个服务合同,内容如下:

IQueryable<T> GetAll();
IQueryable<T> FindBy(System.Linq.Expressions.Expression<Func<T, bool>> predicate);
virtual void Add(T entity);
virtual void Delete(T entity);
virtual void Edit(T entity);
virtual void Save();
IQueryable GetAll();
IQueryable FindBy(System.Linq.Expressions.Expression谓词);
虚拟虚增(T实体);
虚空删除(T实体);
虚空编辑(T实体);
虚拟空保存();

这种事情在WCF中可能发生吗?有更好的方法吗?

使用WCF数据服务-它不使用SOAP,而是使用OData(REST),但它提供了您所需的现成信息。使用标准的soapwcf服务,您必须将表达式树的整个序列化写入SOAP请求,并在服务器上将其重建为Linq查询


另一个选项是ASP.NET Web API,它也支持在开箱即用的客户机上使用
IQueryalbe

我只使用或见过WCF数据服务作为从客户机应用程序访问数据的一种手段-你能告诉我在C#服务器端应用程序中使用OData服务的参考方向吗?这正是一样。服务器应用程序仍然只是OData客户端。我发现,例如,WCF数据服务客户端库,但它依赖于HTTP协议-我不能使用它,因为WCF服务托管在Windows服务中。WCF数据服务只是一种特殊类型的WCF REST服务,可以托管在任何类型的.NET应用程序中。另外,如果您正确配置系统(netsh用于在选定端口上启用HTTP侦听器),任何类型的.NET应用程序都可以使用HTTP公开服务。好的,谢谢-我不知道您可以这样做。你知道这与TCP绑定的性能相比如何吗?