我想知道在存储库基类中使用实体框架代码第一个ctp 5 IDbSet是否有意义。我正在使用存储库模式(并希望遵循持久性无知方法)为我的实现,我想使用假数据进行测试(通过使用内存IDBset实现中的假)。使用RepositoryBase类中的IDbSet的实体框架代码第一个ctp 5
我觉得添加一个依赖到 System.Data.Entity.IDbSet会将我的存储库基类的实现绑定到IDBset,并且如果将来有任何更改可能会破坏代码。实现没有Idbset依赖关系的存储库基类的最佳方式是什么?
我关注此文章:EF CTP4 Tips & Tricks: Testing With Fake DbContext实施假货。
//_dbset impliments the IDBset
//Database inherits from DbContext
protected RepositoryBase(UnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork;
_dbset = _unitOfWork.Database.Set<T>();
}
public virtual void Add(T entity)
{
_dbset.Add(entity);
}
public virtual void Delete(T entity)
{
_dbset.Remove(entity);
}
public virtual T GetById(long id)
{
return _dbset.Find(id);
}
public virtual IEnumerable<T> All()
{
return _dbset.ToList();
}
+1的链接,“测试用假的DbContext”。正是我在找什么! – 2011-05-04 21:02:07