WCF数据服务代理类模板

时间:2012-04-19 09:44:15

标签: asp.net wcf rest wcf-data-services

我有一个带有许多项目的vs2010解决方案(WPF控件库,一些业务逻辑等) 目前,每个库都使用自己的服务引用来访问WCF数据服务。 我正在尝试编写一个新的库,它将为WCF数据服务提供某种DL,我想用模板编写它 - 所以我不需要为我的所有实体编写相同的函数(~30) 。 好吧,我无处可去..

我首先添加了一个简单的界面:

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);
}

我遇到了一些我无法解决的问题。

好吧,就是这样。 谢谢

1 个答案:

答案 0 :(得分:0)

我遇到过同样的问题:不可能用开放的泛型类型声明WCF合约(顺便说一下,也不是接口)。问题是这个框架没有遵循一些基本的好的OOP原则,因此,它会给有经验的程序员带来一些挫败感。

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