2012-04-19 70 views
0

我有许多项目(WPF控制库,一些业务逻辑等)的vs2010解决方案。 当前每个库都使用自己的服务引用到达WCF数据服务。 我想写一个新的库,将某种DL的WCF数据服务,我想写它使用模板 - 所以我不需要写所有我的实体相同的功能(~30 )。 嗯,我一事无成..WCF数据服务代理类模板

我开始通过添加一个简单的界面是这样的:

public interface IRepository<T> 
{ 
    IQueryable<T> GetAll(); 
    T GetSingle(int id); 
    IQueryable<T> FindBy(Expression<Func<T, bool>> predicate); 
    IQueryable<T> Where(Expression<Func<T, bool>> predicate); 
    void Add(T entity); 
    void Delete(T entity); 
    void Update(T entity);   
} 

我试图实现接口和我到了问题,我不知道如何解决

1)实现类我怎么告诉我的情况下,我查询

public IQueryable<Region> Where(Expression<Func<T, bool>> predicate) 
{ 
    return _context.(something general).Where(predicate); 
} 

2,实体)即使我提供实体

public IQueryable<Region> Where(Expression<Func<T, bool>> predicate) 
{ 
    return _context.Region.Where(predicate); 
} 

我进入了铸造问题,我没有设法解决。

好吧,就是这样。 谢谢

回答

0

我一直在遇到同样的问题:不可能用开放的泛型类型(或接口)来声明WCF契约。问题是这个框架并不遵循一些基本的良好的面向对象的原则,因此它会让有经验的程序员感到沮丧。

有关此问题的更多信息,请参阅msdn上的示例。