Tag: 设计 模式

如何设计工作单元以支持批量操作并提供更高的性能?

我有两个不同的工作单元:一个基于ADO.NET ,主要调用存储过程( uowADO ),另一个使用Entity Framework 6 ( uowEF ),最近为了支持Oracle数据库而添加,因此我没有必要重写所有SP(我的知识在那里有限)。 因此,在对数据库执行操作时,业务层只加载其中一个(基于配置)(但我不能并行使用它们,因为uowADO不支持Oracle) 添加新的uowEF我注意到了大的性能问题,当然主要是批量操作。 基本上我现在只有当前IUnitOfWork上的Commit和Rollback方法……非常接近本文的建议。 所以,我正在考虑重做这个工作单元。 例如,我读到有时在涉及批量操作时禁用dbContext.Configuration.AutoDetectChangesEnabled ,以及其他有关EF的优化提示可能有所帮助。 不幸的是,我不确定如何设计这样的工作单元以使其通用,以便我可以在BL和数据访问层的所有情况下使用它: ADO.NET和EF 。 有什么想法,建议和良好的链接吗?

使用“单一责任原则”迫使我的容器拥有公共制定者

我正在努力按照SOLID原则进行设计。 我发现当你使用“单一责任原则”(SOLID的S)时,你通常必须在数据容器和数据处理器之间拆分类。 例如,如果我有一个具有5个属性的类人员从DB读取而不是将所有内容放在一个类中,我创建一个带有属性的Person类和另一个从数据库中读取该信息并创建Person的PersonReader类。 如果我这样做,我必须打开Person属性,以便PersonReader可以访问它们,但是我的封装比将所有内容放在黑盒子中并使属性只能读取更少。 我错过了什么或这是这个原则的缺点吗? 提前致谢 编辑:我已经将人作家改为一个人读者,因为没有必要在开始时公开财产制定者。