Я хочу выяснить, имеет ли смысл сначала использовать код Entity Framework ctp 5 IDbSet в базовом классе репозитория.
Я использую шаблон репозитория (и хотел бы следовать методу постоянного невежества)) для моих реализаций, и я хотел бы использовать поддельные данные для тестирования (используя ложную реализацию в памяти IDBset).
Я чувствую, что добавление зависимости к System.Data.Entity.IDbSet свяжет мою реализациюбазового класса репозитория для IDBset и, если в нем есть какие-либо будущие изменения, которые могут нарушить код.Каков наилучший способ реализации базового класса репозитория без зависимости Idbset?
Я слежу за этим сообщением: Советы и рекомендации EF CTP4: тестирование с использованием 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();
}