【发布时间】:2016-08-03 20:25:56
【问题描述】:
我已经使用存储库模式(Interface=>Repository)完成了多个项目,但是现在,我的同事的一个代码面临着一个新的挑战(不是一个大挑战)。我们正在实现一个通用服务,其中包含所有实体类的所有 CRUD 操作方法。
我们在这个项目中首先使用数据库,并且具有以下结构,
aspx.cs > entityclass(AppUser) > 通用服务 > 实体模型。
public class UserServices : GenericServices<User>
{ //Implemented methods }
这是通用服务:
public class GenericServices<T> where T : class
{
App_dbEntities _db;
IDbSet<T> ent;
public GenericServices()
{
_db = new App_dbEntities();
ent = _db.Set<T>();
}
public IEnumerable<T> Select()
{
return ent;
}
public T Select(string id)
{
??
}
}
我正在尝试处理实体的属性,但由于这是通用的,它不知道目前正在处理什么实体。我见过一些使用谓词作为函数参数的例子。请帮我一把。
【问题讨论】:
-
可以使用IDbSet接口的
Find方法:return ent.Find(id)
标签: c# entity-framework generics entity-framework-6 repository-pattern