Repository可以在没有Unit Of Work的情况下工作,因此它也可以有保存方法。 工作单元模式用于涉及多个存储库(可能使用不同的数据上下文)的场景。它允许跟踪事务中所做的所有更改,直到调用Commit方法将这些更改持久化到数据库(在本例中是文件)。 当您使用“添加”、“更新”或“删除”操作与存储库交互时,工作单元仅通过将实体标记为“已添加”、“已删除”或“已更改”来修改实体的状态。但是,只有在调用Commit方法时,这些更改才会实际持久化。此时,工作单元遍历存储库并执行必要的持久性操作。 工作单元的行为取决于存储库是共享相同的数据上下文还是具有不同的数据上下文。当存储库共享相同的数据上下文时,工作单元可以直接使用该数据上下文,从而在访问和更新数据库或文件时提高性能。 另一方面,如果存储库具有不同的数据上下文,表示不同的数据库或文件,则Unit Of Work通过为同一TransactionScope中的每个存储库调用保存方法来处理持久性,从而确保以一致的方式提交所有更改。
1条答案
按热度按时间drkbr07n1#
Repository可以在没有Unit Of Work的情况下工作,因此它也可以有保存方法。
工作单元模式用于涉及多个存储库(可能使用不同的数据上下文)的场景。它允许跟踪事务中所做的所有更改,直到调用Commit方法将这些更改持久化到数据库(在本例中是文件)。
当您使用“添加”、“更新”或“删除”操作与存储库交互时,工作单元仅通过将实体标记为“已添加”、“已删除”或“已更改”来修改实体的状态。但是,只有在调用Commit方法时,这些更改才会实际持久化。此时,工作单元遍历存储库并执行必要的持久性操作。
工作单元的行为取决于存储库是共享相同的数据上下文还是具有不同的数据上下文。当存储库共享相同的数据上下文时,工作单元可以直接使用该数据上下文,从而在访问和更新数据库或文件时提高性能。
另一方面,如果存储库具有不同的数据上下文,表示不同的数据库或文件,则Unit Of Work通过为同一TransactionScope中的每个存储库调用保存方法来处理持久性,从而确保以一致的方式提交所有更改。