我正在创建一个对象关系映射工具的快速和脏的原型(C#)。我想支持至少两种数据库 - 一种是Microsoft SQL Server 2005/2008,另一种最可能是MySQL。
有没有办法为两个数据库引擎使用单一数据库访问机制,它会是什么?
当然,我知道SQL查询语法会有差异,但在我的情况下它并不重要 - 我将使用工具生成适合某个数据库引擎的SQL查询,用户将能够优化那些SQL查询。
主要思想是尽可能提供灵活的数据提供商解决方案。是否可以完成,如何更轻松地完成? 请注意,我不是将它用于生产系统,仅用于原型,但我仍然很好奇它是如何在生产OR / M工具中实现的 - 它们是否为每个数据提供者使用完全独立的访问机制或者有一些共同点?他们是否正在使用DataReaders,或者如果我打算将数据转换为业务对象,还有一些更合适的方法来检索数据?
感谢任何想法,链接等。
答案 0 :(得分:1)
我推荐nhibernate - 这就是你想要的。
答案 1 :(得分:1)
好的,我找到了: http://www.15seconds.com/issue/040127.htm
解决方案是使用IDbxxx或Dbxxx,如msdn.microsoft.com/en-us/library/ms379620(VS.80).aspx
中所述。现在我只能指定一次我使用的DataProvider,然后在其他任何地方使用Db / IDb。