c#-实体框架,IRepository和UnitOfWork.您如何实施DAL?
作者:互联网
带有EF的Canonical implementation of Repository看起来像:
public interface IStudentRepository : IDisposable
{
IEnumerable<Student> GetStudents();
Student GetStudentByID(int studentId);
void InsertStudent(Student student);
void DeleteStudent(int studentID);
void UpdateStudent(Student student);
void Save();
}
在这里,我看到了IRepository和UnitOWork的混合.
但是Fowler说存储库是collection-like interface for accessing domain objects.据此,Update,Delete和Insert方法应该移到另一个类.以及保存应移到实现IUnitOfWork的类.
在我当前的项目中,我们按照官方文档所述实现IRepository.将来会引起问题吗?一种解决方案是实施CQRS,可能带有事件源,但是这将花费时间和资源.那么,如何在项目中实现DAL?
解决方法:
您那里所拥有的一切都没错.
我要做的唯一一件事就是为存储库创建一个Singleton工厂,该工厂是DataService类的一部分. DataService类将交付存储库实例
标签:orm,data-access-layer,c,net,entity-framework 来源: https://codeday.me/bug/20191112/2024426.html