编程语言
首页 > 编程语言> > c#-实体框架,IRepository和UnitOfWork.您如何实施DAL?

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