使用工作单元模式的目的是什么?它与实体框架的关系是什么?

时间:2018-06-01 17:14:55

标签: c# asp.net asp.net-mvc-5

如果它已经在db上下文中实现那么为什么我们需要明确地实现它?

3 个答案:

答案 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。但这取决于您正在使用的项目,如果您有一个小项目使用您想要的任何东西,但在大型项目中,您需要添加许多模式以使开发变得容易!