일반 저장소를 만드는 두 가지 다른 접근 방식을 보았습니다. 이 두 가지 접근 방식 (장단점)의 차이점은 무엇입니까? 내가일반 저장소 - IRepository <T> 또는 IRepository
public interface IRepository<T> where T : class
및
public interface IRepository : IDisposable
의 차이에 관심이 있기 때문에 기능, 유연성, 단위 테스트에서 어떤 차이가 있습니까 방법에 차이를 diregard하세요 ...? 나는 무엇을 얻거나 잃을 것인가?
Dependency Injection 프레임 워크에 등록 된 방법에 차이가 있습니까?
옵션 1
public interface IRepository<T> where T : class
{
T Get(object id);
void Attach(T entity);
IQueryable<T> GetAll();
void Insert(T entity);
void Delete(T entity);
void SubmitChanges();
}
옵션 2
public interface IRepository : IDisposable
{
IQueryable<T> GetAll<T>();
void Delete<T>(T entity);
void Add<T>(T entity);
void SaveChanges();
bool IsDisposed();
}
내 엔티티가 매우 다른 방법을 사용하는 경우 모든 엔티티에 전혀 사용하지 않을 수있는 메소드 구현이 없으므로 모든 엔티티에 대해 IRepository을 구현하지 않는 것이 좋습니다. 엔티티가 일반적인 방법이 많은 경우에만 IRepository 을 수행하십시오. 그렇지 않으면 저장소 클래스가 빈 메소드를 포함하게됩니다. –
msfanboy
나는 공허한 방법이 거대한 세계 결말 태양풍만큼 위험하다고 생각하지 않습니다. – ProfK