在项目中拥有超过100个wcf服务类是不错的设计

时间:2014-05-09 13:08:58

标签: c# wpf entity-framework wcf

[编辑] 用更通用的术语来说,如果,我们有很高的号码。需要通过WCF(TCP和HTTP)支持CRUD操作的实体(表),解决方案设计的最佳方法是什么。 [编辑结束]

我们在数据库中有大约300个表,我们必须为所有这些表提供crud操作。我们正在尝试使用链接 - http://blog.longle.net/2013/05/11/genericizing-the-unit-of-work-pattern-repository-pattern-with-entity-framework-in-mvc/

中描述的实体框架和存储库模式来实现

和codeplex项目 http://genericunitofworkandrepositories.codeplex.com/documentation

它具有以下IService接口及其实现,我可以在其中传递Entity对象,而不必手动实现方法。

public interface IService<TEntity> where TEntity : Entity
{
    [OperationContract]
    TEntity Find(params object[] keyValues);     
   [OperationContract]
    IQueryable<TEntity> SelectQuery(string query, params object[] parameters);
       [OperationContract]
    void Insert(TEntity entity);
       [OperationContract]
    void InsertRange(IEnumerable<TEntity> entities);
       [OperationContract]
    void InsertGraph(TEntity entity);
       [OperationContract]
    void InsertGraphRange(IEnumerable<TEntity> entities);
       [OperationContract]
    void Update(TEntity entity);
       [OperationContract(Name="DeleteByID")]
    void Delete(object id);
       [OperationContract]
    void Delete(TEntity entity);
       [OperationContract]
       List<TEntity> Query();
       [OperationContract(Name="QueryEntity")]
       List<TEntity> Query(IQueryObject<TEntity> queryObject);   
}

由于WCF不支持泛型,我必须创建一个接口和一个实现该接口的类。对于员工实体

[ServiceContract] public interface IEmployeeService : IService<Employee>{} class EmployeeService : Service<Employee>, IEmployeeService{}

问题是为所有这些添加crud操作,我将不得不创建大约300个这样的服务接口并在WPF客户端应用程序中使用它。这是正确的设计方法吗?还有哪些其他选择。

注意: - 我们必须通过WCF支持HTTP和TCP协议。

0 个答案:

没有答案