EF/저장소/작업 단위를 사용하고 있지만 일부 세부 사항을 이해하는 데 어려움을 겪고 있습니다. UnitOfWork 내부에서 새 EF DbContext (EmmaContext)를 만들었지 만 저장소 내부를 보았습니다. 내가 잘못 알고있는 캐스팅했는데 어떻게하면 레노 내부의 컨텍스트를 올바르게 얻을 수 있습니까? 어쩌면 나는 완전히 잘못된 길을 가고 있습니까? 이 에서엔티티 프레임 워크 및 작업 단위
//Interface
public interface IRepository<TEntity> where TEntity : class
{
IQueryable<TEntity> Query();
void Add(TEntity entity);
void Attach(TEntity entity);
void Delete(TEntity entity);
void Save(TEntity entity);
}
//Implementation
public abstract class RepositoryBase<TEntity> : IRepository<TEntity> where TEntity : class
{
#region Fields/Properties
protected EmmaContext context;
protected DbSet<TEntity> dbSet;
#endregion
#region Constructor(s)
public RepositoryBase(IUnitOfWork unitOfWork)
{
this.context = ((UnitOfWork)unitOfWork).Context;
this.dbSet = context.Set<TEntity>();
}
#endregion
#region Methods
public void Add(TEntity entity)
{
dbSet.Add(entity);
}
public void Attach(TEntity entity)
{
dbSet.Attach(entity);
}
public void Delete(TEntity entity)
{
dbSet.Remove(entity);
}
public IQueryable<TEntity> Query()
{
return dbSet.AsQueryable();
}
public void Save(TEntity entity)
{
Attach(entity);
context.MarkModified(entity);
}
#endregion
}
이것은 기본적으로 내가 한 일로 IUnitOfWork 인터페이스를 추가했지만 유닛 테스트에서는 무엇을 생각하니? 리포지토리와 작업 단위를 단위 테스트 할 것입니까? – Sam
조금 생각한 후 구현 코드를 호출 코드로 추상화하고 IoC 컨테이너의 레포로 컨텍스트를 가져 오는 방법을 궁금합니다. 코드 샘플이 있습니까? 감사! BTW - 방금 MVC 3.0 서적, 훌륭한 책을 읽었습니다! – Sam
@Sam - thanks :) – OdeToCode