将我的DbContext封装在工作单元类中是个好主意吗



我正在尝试在我的MVC Web应用程序中实现工作单元/存储库模式。

由于DbContext本身是一个工作单元,我想将它与我自己的UOW混合起来,用于测试和解耦目的(将业务层与EF解耦)。那么,将我的DbContext封装在如下所示的UOW类中是个好主意吗?

示例:

简化代码以提高清晰度

public interface IUnitOfWork
{
    void Save();
}
public MyContext : DbContext
{
    // DbSets here
}
public UnitOfWork : IUnitOfWork
{
    public MyContext myContext { get; set; }
    void Save()
    {
        myContext.SaveChanges();
    }
}

然后我会调用UnitOfWork实例来执行数据操作。

提前感谢:-)

我取决于你想要完成什么。

如果你想在实体框架和业务逻辑之间创建一个抽象层,那么是的,这是个好主意。但是,您必须进行一个完整的抽象,这意味着您的存储库类不能公开IQueryable<T>

如果您没有创建一个完整的抽象,那么我看不出有任何理由将DbContext封装在工作单元类中。

相关内容

  • 没有找到相关文章

最新更新