我有一个通用的存储库中,我尝试添加GetById方法,如下所示 C# LINQ to SQL: Refactoring this Generic GetByID method通用仓库EF4 CTP5 getById
的问题是我的仓库不使用System.Data.Linq.DataContext ,而不是我用System.Data.Entity.DbContext
所以我得到的错误,我尝试使用
Mapping.GetMetaType
和
return _set.Where(whereExpression).Single();
我如何能实现在CTP5通用GetById方法?我应该在我的Repository中使用System.Data.Entity.DbContext。
这里是我的仓库类的开始
public class BaseRepository<T> where T : class
{
private DbContext _context;
private readonly DbSet<T> _set;
public BaseRepository()
{
_context = new MyDBContext();
_set = _context.Set<T>();
}
优秀,感谢解释许多方法。他们似乎都做工精细除了_set.FindBy我找不到System.Data.Entity.DBSet – Daveo 2011-03-02 21:08:15
这种方法是错字:)它应该是'Find' – 2011-03-02 21:23:05
@Ladislav Mrnka:在你的第一个例子,在那里你提供PARAMS对象[]键到GetById方法,如果有两个字段作为主键,那么如何映射Find每个键到相关字段? – Naor 2011-04-25 21:58:11