C# 在不同的引擎上访问不同数据库的最佳方式是什么,但结构相似
我通常使用MySql,但也使用SQL Server、Oracle和Access,数据库结构几乎相同。我的数据库存储SCADA应用程序的配置和记录数据(“监控和数据采集”)。 大多数表通常是相同的,但有时我的队友会添加字段、表或更改某些字段类型 我正在编写一个应用程序,它需要从db加载一些配置参数,然后加载数据,处理数据,并将新值存储在db上。它还需要添加新记录 我有一个类,它独立于db类型,在给定正确的连接参数的情况下,获取一个C# 在不同的引擎上访问不同数据库的最佳方式是什么,但结构相似,c#,database,linq,C#,Database,Linq,我通常使用MySql,但也使用SQL Server、Oracle和Access,数据库结构几乎相同。我的数据库存储SCADA应用程序的配置和记录数据(“监控和数据采集”)。 大多数表通常是相同的,但有时我的队友会添加字段、表或更改某些字段类型 我正在编写一个应用程序,它需要从db加载一些配置参数,然后加载数据,处理数据,并将新值存储在db上。它还需要添加新记录 我有一个类,它独立于db类型,在给定正确的连接参数的情况下,获取一个IDbConnection对象。通过一些方法,我可以指定一个SQL查
IDbConnection
对象。通过一些方法,我可以指定一个SQL查询,它给我和IDataReader
或者一个Dataset
现在,我应该如何从数据库中查询数据、分析、重新计算并最终再次存储它们?
我有点害怕构建详细的对象映射,因为可能会更改字段。简单的dataset/datatable/datarow应该可以,但我想使用linq以更简单的方式查询从数据库提取的数据
最后,我的db有大约60个表,但在这个应用程序中,我只处理其中的一打表。我只有很少的时间来构建那个应用程序,所以我需要一个快速的方法,即使它不是“非常漂亮”
谢谢。您应该尝试根据模式自动配置自身的ORM 我找到了这个。我在c语言中没有使用类似的东西,但它在其他(动态)语言中工作得很好。
使用ORM可能是最快的。你可以用它。NHibernate确实有一个学习曲线,所以像微型ORM这样的东西可能更容易使用。是一个伟大的微型ORM,支持SQL Server、SQL Server CE、MySQL、PostgreSQL和Oracle
这些ORM将为您使用的每个数据库创建一个映射文件,在数据库中进行更改时需要更新或重新创建该文件 谢谢@Ewald Stieger,但是使用这个ORM,我必须手动创建与我的数据库表对应的所有类?是否正确?@Pomp否,ORM将自动创建类,例如,使用Petapoco,您只需指定连接字符串并运行T4模板即可创建所有DB类。