【发布时间】:2010-02-17 22:56:44
【问题描述】:
我有这个:
public interface IRepository<T> where T : class
{
void Delete(T entity);
void Add(T entity);
void Attach(T entity);
void Detach(T entity);
void SaveChanges();
}
现在我为我的每个实体创建了实现通用 IRepository 的具体类 =>
public class SchoolclassRepository : IRepository<Schoolclass>
{
public void Delete(Schoolclass entity)
{
throw new NotImplementedException();
}
public void Add(Schoolclass entity)
{
throw new NotImplementedException();
}
public void Attach(Schoolclass entity)
{
throw new NotImplementedException();
}
public void Detach(Schoolclass entity)
{
throw new NotImplementedException();
}
public void SaveChanges()
{
throw new NotImplementedException();
}
}
在我的 ViewModel 的构造函数(mvvm 模式)中,我这样做 =>
IRepository<Schoolclass> repo = new SchoolclassRepository();
当我必须在每个实体类中为我的 CRUD 操作编写代码时,IRepository 有什么优势?
在 Customer、Product、Pupil 中,我实现了 IRepository<Product>、IRepository<Customer>、IRepository<Pupil> 等任何类......并且我实现了接口的方法。
为什么我不能说 =>
SchoolclassRepository repo = new SchoolclassRepository(); ???
我不喜欢为小型应用编写单元测试。
【问题讨论】:
-
您的意思是
SchoolclassRepository repo = new SchoolclassRepository();吗? -
哦,是的,是错字...现在已修复
标签: c# repository irepository