我有一个带有许多项目的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);
}
我遇到了一些我无法解决的问题。
好吧,就是这样。 谢谢答案 0 :(得分:0)
我遇到过同样的问题:不可能用开放的泛型类型声明WCF合约(顺便说一下,也不是接口)。问题是这个框架没有遵循一些基本的好的OOP原则,因此,它会给有经验的程序员带来一些挫败感。
有关此问题的详细信息,请参阅msdn上的示例。