gpt4 book ai didi

asp.net-mvc - 将我的 DbContext 包装在一个工作单元类中是个好主意吗?

转载 作者:行者123 更新时间:2023-12-04 15:23:35 24 4
gpt4 key购买 nike

我正在尝试在我的 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 包装在工作单元类中。

关于asp.net-mvc - 将我的 DbContext 包装在一个工作单元类中是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18186065/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com