0

我正在编写一个建立在实体框架 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 中这种事情是可能的吗?有没有更好的办法?

4

1 回答 1

1

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

其他选项是 ASP.NET Web-API,它也支持IQueryalbe开箱即用的客户端。

于 2012-06-13T20:00:06.200 回答