繁体   English   中英

什么是访问不同引擎但结构相似的不同数据库的最佳方法

[英]What is best way access different database on different engine but with similar structure

我通常使用MySql,但也使用SQL Server,Oracle和Access,数据库结构几乎相同。 我的数据库存储SCADA应用程序的配置和记录的数据(“监控和数据采集”)。 大多数表通常是相同的,但有时我的队友会添加字段,表或更改某些字段类型。

我正在编写一个需要从db加载一些配置参数,然后加载数据,对其进行处理并将新值存储在db上的应用程序。 它还需要添加新记录。

我有一个类,独立于db类型,给定正确的连接参数,即可获得IDbConnection对象。 使用某些方法,我可以指定一个SQL查询,它给我和IDataReader或一个Dataset

现在,我应该如何从数据库查询数据,分析,重新计算并最终再次存储它们? 由于可能会更改字段,我有点害怕构建详细的对象映射。 一个简单的数据集/数据表/数据行应该可以,但我想使用linq以更简单的方式查询从数据库中提取的数据。

最后,我的数据库有大约60个表,但是在此应用程序中,我仅使用其中的12个表。 我只有很少的时间来构建该应用程序,因此即使它不是“非常漂亮”,我也需要一种快速的方法。

谢谢。

您应该尝试根据模式自动配置自身的ORM

我找到了这个。 我没有在c#中使用类似的东西,但是在其他(动态)语言中效果很好。
http://www.codeproject.com/Articles/117666/Kerosene-ORM

使用ORM最有可能是最快的。 您可以使用具有多个数据库支持的 NHibernate NHibernate确实具有学习曲线,因此像微型ORM之类的东西也许更容易使用。 Petapoco是一个出色的微型ORM,并支持SQL Server,SQL Server CE,MySQL,PostgreSQL和Oracle。

这些ORM将为您使用的每个数据库创建一个映射文件,当在数据库中进行更改时,该文件需要更新或重新创建。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM