加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 将我的DbContext包装在Unit of Work类中是个好主

发布时间:2020-12-16 03:28:58 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试在我的MVC Web应用程序中实现工作单元/存储库模式. 由于DbContext本身是一个工作单元,我想将它与我自己的UOW混合用于测试和解耦目的(将业务层与EF分离).那么将我的DbContext包装在UOW类中是一个好主意,如下所示? 例: 为清晰起见,代码减少 public
我正在尝试在我的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实例来执行数据操作.

非常感谢提前:-)

解决方法

我取决于你想要完成的事情.

我想在Entity Framework和你的业务逻辑之间创建一个抽象层,然后是的,这是一个好主意.但是,您必须进行完全抽象,这意味着您的存储库类不能公开IQueryable< T>.

如果你没有创建一个完整的抽象,那么我没有看到任何理由将DbContext包装在一个工作类单元中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读