如果它已经在db上下文中实现那么为什么我们需要明确地实现它?
答案 0 :(得分:0)
将EF Repository视为管理特定实体所需的功能。将UnitOfWork视为相关的存储库集合。
例如,选择Orders,LineItems,Products,Locations,Inventory
将产品添加到订单的LineItem时,您希望减少可用产品。所有这些表(Order,LineItems,Inventory)应该一起更新或根本不更新(在SQL Server中,这是一个事务)。 UoW是允许在任何提交之前更新多个实体的模式。任何事情都会失败并且全部回滚,保护您的数据完整性。
更好?
答案 1 :(得分:0)
EF实现UoW和Repository模式。 DbContext是UoW。 DbSets是存储库。
参见:https://msdn.microsoft.com/en-us/library/system.data.entity.dbcontext(v=vs.113).aspx它明确指出EF实现这些模式。
工作单元的目的是保持数据的完整性。
答案 2 :(得分:-1)
该模式使维护源代码变得更加容易,您可以轻松地在一个地方添加新的数据库服务或更改Dbcontex。但这取决于您正在使用的项目,如果您有一个小项目使用您想要的任何东西,但在大型项目中,您需要添加许多模式以使开发变得容易!