我正在使用Entity Framework,我正在尝试结合Repository模式学习Unit of Work模式。
从我理解到现在,工作单位负责跟踪对实体对象所做的更改。但是,DataContext不是在做同样的事情吗?
那么,实现工作单元模式并不像“强迫”你在所有方法中使用相同的上下文一样吗?
public class EFUnitOfWork : IUnitOfWork
{
EFContext context = new EFContext();
public void Commit()
{
context.SaveChanges();
}
}
public class ProductsRepository(IUnitOfWork unitOfWork)
{
/* CRUD methods here */
}
public void InsertProducts()
{
var unitOfWork = new EFUnitOfWork(); // <-- this will normally be injected via constructor
var productsRepository = new ProductsRepository(unitOfWork);
productsRepository.Insert(new Product { Name = "Product 1", Description = "Description" });
productsRepository.Insert(new Product { Name = "Product 2", Description = "Description" });
productsRepository.Insert(new Product { Name = "Product 3", Description = "Description" });
unitOfWork.Commit();
}
这是使用工作单元与实体框架的正确方法吗?
答案 0 :(得分:0)