我正在编写一个基于实体框架ORM构建的WCF服务。
该服务的两个客户端是Web应用程序(不是客户端)和Windows服务。
我过去曾使用RepositoryPattern来简化服务中的CRUD代码。 是否可以通过WCF执行此操作?
我需要执行CRUD的十几个对象,所以理想情况下我喜欢ServiceContract:
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中是否可行?还有更好的方法吗?
答案 0 :(得分:1)
使用WCF数据服务 - 它不使用SOAP而是使用OData(REST),但它提供了您需要的开箱即用的功能。使用标准SOAP WCF服务,您必须将Expression树的整个序列化写入SOAP请求,并将其重构为服务器上的Linq查询。
其他选项是ASP.NET Web-API,它也支持客户端开箱即用的IQueryalbe
。