什么是最好的方式访问不同的数据库上不同的引擎,但具有相似的结构
本文关键字:结构 相似 引擎 方式 访问 数据库 什么 | 更新日期: 2023-09-27 18:16:45
我通常使用MySql,但也使用SQL Server, Oracle和Access,数据库结构几乎相同。我的数据库存储了SCADA应用程序的配置和记录数据("监控和数据采集")。大多数表通常是相同的,但有时我的队友添加字段,表或更改一些字段类型。
我正在编写一个应用程序,需要从db加载一些配置参数,然后加载数据,处理它并将新值存储在db上。它还需要添加新记录。
我有一个类,独立于db类型,给定正确的连接参数,获得一个IDbConnection
对象。使用一些方法,我可以指定一个SQL查询,它给我和IDataReader
或Dataset
。
现在,我应该如何从数据库查询数据,分析,重新计算,最后再次存储它们?我有点害怕构建详细的对象映射,因为可能会更改字段。一个简单的数据集/datatable/datarow应该是可以的,但我想使用linq以更简单的方式查询从数据库中提取的数据。
最后,我的db大约有60个表,但在这个应用程序中,我只使用其中的十几个表。我只有很少的时间来构建这个应用程序,所以我需要一个快速的方法,如果它不是"非常漂亮"。
谢谢。
您应该尝试根据模式自动配置自己的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将为您使用的每个数据库创建一个映射文件,当在数据库中进行更改时需要更新或重新创建该文件。