有一件事让我难以理解,而且我在书籍/博客中并没有多少提及它,那就是如何处理真正不属于系统的数据库操作DAO或知识库的管辖权。我喜欢使用通用DAO /存储库的方法来处理常见的数据库操作,但是如何处理不是实体的东西呢?例如,假设我正在构建一个系统,并且在少数情况下,我需要调用存储过程来运行批处理操作并返回成功代码。或者,我需要从一个杂项表中加载一个日期。或者,我想从表格中加载美国各州的列表。这些情况肯定会发生,并且它们确实可能与系统中的实体或其他对象没有任何关系。没有放弃讨厌的“misc”数据库类放弃像NHibernate的东西手动使用ADO.NET来做这些类型的操作,什么是OOP人群的其他标准方法?DAO /知识库/ NHibernate和处理边缘数据库案例
0
A
回答
2
绕过DAO并直接使用ADO连接器(或本地驱动程序)正是每个人所做的事情,没有什么“讨厌”或错误的。如果这些确实是你的边缘情况,那么你会期望什么样的框架?更糟糕的是,当人们围绕他们的DAO包装各种奇怪的恶作剧时,他们只是以“不要在<插入DAO这里插入DAO >”的名义做一些事情。
我的意思是如果你有一个存储过程,那么你显然已经决定数据库不可知论在窗口之外(这是一个被高估的目标),那么为什么有关使用ADO.Net的疑虑?只要在代码中非常明确,不要隐藏它。大声说出自己的感受:“我正在使用数据库,而且我不会轻弹任何人的想法!”。哦,请确保它仍然与你的其他逻辑分开。我不希望我的单元测试由于存储过程而变慢。
相关问题
- 1. 如何处理破坏边缘案例
- 2. Pascal案例边缘案例
- 3. Python输入验证和边缘案例处理
- 4. 在Javascript中识别一维数组的边缘案例
- 5. Matlab处理边缘
- 6. 处理数据库异常
- 7. 图形数据库边缘索引
- 8. 数据库基础知识
- 9. SQLException:使用SQLite和Scala处理未知数据库
- 10. SharePoint和知识库
- 11. 在处理数据库时JSP,Servlet,DAO之间的通信
- 12. NHibernate和多个数据库
- 13. 在数据集中查找'边缘案例'
- 14. Doctrine2 basic;代理,知识库
- 15. StructureMap,NHibernate和多个数据库
- 16. 瞬态故障处理,SQL Azure,知识库和EF
- 17. 知识库和数据库之间的区别
- 18. 使用nHibernate与DI数据库实例
- 19. Dex图形数据库检索所有节点和边缘
- 20. 复制文件边缘案例
- 21. 被DecimalFormat/RoundingMode.Down困惑的边缘案例
- 22. Spring批处理的数据库和元数据库表
- 23. 在PHP中处理和通知数据库连接失败
- 24. C#库节点边缘图
- 25. PHP和Mysqli OOP - 处理数据库
- 26. 处理多层MVVM TreeView的数据库事务和例外
- 27. MVVM和知识库问题
- 28. EF4.0,知识库和Ninject 2
- 29. 多UnitOfWorks,ISession和知识库
- 30. 持久性和知识库
是的,很好的建议。谢谢。 – Bobbie 2009-11-30 14:58:27