我正在编写一个建立在实体框架ORM之上的WCF服务。
该服务的两个客户端是 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();
在 WCF 中可能出现这种事情吗?有没有更好的方法?
WCF 数据服务 - 它不使用 SOAP,而是使用 OData (REST),但它提供了开箱即用的功能。使用标准的 SOAP WCF 服务,您必须将表达式树的整个序列化写入 SOAP 请求,并将其重新构造为服务器上的 Linq 查询。
另一个选项是 ASP.NET Web-API,它也支持开箱即用的客户端上使用IQueryalbe
。