gpt4 book ai didi

c# - 在 ASP.NET MVC 的 UnitOfWork 中转换 DbContext

转载 作者:行者123 更新时间:2023-11-30 21:52:42 24 4
gpt4 key购买 nike

我一直在寻找 C# 中的存储库和工作单元模式,到目前为止,这是我找到的:

public class Repository<T> : IRepository<T> where T:class
{
private DbContext context;
private DbSet<T> _dbSet;

public Repository(DbContext context)
{
this.context = context;
_dbSet = context.Set<T>();
}
}

然而,在一个给我研究的项目中,我看到了这个:

public class Repository<T> : IRepository<T> where T:class
{
private readonly IUnitOfWork _unitOfWork
private readonly DbSet<T> _dbSet;

public Repository(IUnitOfWork unitOfWork)
{
_unitOfWork = unitOfWork
_dbSet = ((DbContext)_unitOfWork).Set<T>();
}
}

有人可以为我澄清一下区别吗?任何解释将不胜感激。谢谢!

最佳答案

技术上没有太大区别,但是接口(interface)的使用要好得多,因为你可以抽象DbContext,看看你是否需要将EF更改为另一个ORM,你只需要实现一个具体的 UnitOfWork,因此更改的创伤较小。

关于c# - 在 ASP.NET MVC 的 UnitOfWork 中转换 DbContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583982/

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