1
최근에 DbContext 모델을 mockable로 만들도록 요청했습니다.DbSetT 대 IDbSet <T>
는하지만, 현재 다음과 같이 정의된다 :
public MyDbContext : DbContext
{
public DbSet<Employee> Employees {get;set;}
}
내가 생각 그것은 추상적에에 : 내 MyDbContext 구현에 IDbSet와 DbSet을 교환하는 경우
public interface IMyDbContext
{
IDbSet<Employee> Employees {get;set;}
}
public MyDbContext : DbContext, IMyDbContext
{
IDbSet<Employee> Employees {get;set;}
}
가 난 아무것도 잃을합니까?
DbSet에는 IDbSet에서 노출되지 않는 몇 가지 메서드가 있습니다. 내 DbContext 클래스 정의에서 IDbSet을 사용하면 얼마만큼 느슨한 지에 관심이 있습니다. 이것은 디자인 패턴 1보다는 EF 특정 질문입니다. –