我通常使用MySql,而且还使用SQL Server,Oracle和Access,数据库结构几乎相同。我的数据库存储SCADA应用程序的配置和记录数据(“监控和数据采集”)。 大多数表通常是相同的,但有时我的队友会添加字段,表格或更改某些字段类型。
我正在编写一个需要从db加载一些配置参数的应用程序,然后加载数据,处理它并在db上存储新值。它还需要添加新记录。
我有一个类,它独立于db类型,给定正确的连接参数,得到一个IDbConnection
对象。通过一些方法,我可以指定一个SQL查询,它给我和IDataReader
或者Dataset
。
现在,我应该如何从数据库中查询数据,分析,重新计算并最终再次存储它们? 由于可能会改变字段,我有点害怕构建详细的对象映射。一个简单的数据集/数据表/数据行应该没问题,但是我想使用linq以更简单的方式查询数据库中提取的数据。
最后,我的数据库有大约60个表,但在这个应用程序中,我只使用了十几个表。我只有几次构建该应用程序,所以我需要一个快速的方法,如果它不是“非常漂亮”。
感谢。
答案 0 :(得分:0)
你应该尝试一个根据架构自动配置自己的ORM
我找到了这个。我没有在c#中使用类似的东西,但它在其他(动态)语言中很好用 http://www.codeproject.com/Articles/117666/Kerosene-ORM
答案 1 :(得分:0)
使用ORM最有可能是最快的。您可以使用NHibernate multiple DB support。 NHibernate确实有学习曲线,所以像微型ORM这样的东西也许更容易使用。 Petapoco是一个很棒的微型ORM,支持SQL Server,SQL Server CE,MySQL,PostgreSQL和Oracle。
这些ORM将为您使用的每个数据库创建一个映射文件,在DB中进行更改时需要更新或重新创建。