【发布时间】:2014-06-05 03:04:00
【问题描述】:
我将数据动态导入数据库,在其中动态创建新表并存储元数据,以便以后可以通过动态构造的 SQL 访问这些表。我的问题是,对于 C#,是否有一个库可供我使用,可以抽象出 SQL 本身的一些细节?我遇到的情况是序列(尽管还有其他)。在 Oracle 中访问序列看起来像这样
select foo.nextVal from dual;
在 Postgres 中...
select currval('foo_id_seq');
对于我的项目,我不知道最终的数据库会是什么,而且我不喜欢通过运行项目来修复由于 SQL 错误而导致的一堆错误的想法。
我查看了 NHibernate,它看起来像这样的工具(Linq to SQL)需要一个现有的对象模型。我没有对象模型,因为我的所有数据都是动态提供的,我不知道列数、数据类型等。
感谢任何建议的解决此问题的方法。
【问题讨论】:
-
动态创建的表格听起来像是个坏消息。真的没有办法了吗?
-
基本上是我们的客户上传文件。我们不知道文件的数量、数据类型、它们之间的关系、行数、列数等等。一段时间以来,我们使用动态构造取得了很大的成功。
-
对动态生成的数据使用 XML 列。
-
我不想采用这种方法,因为我可以动态构建 SQL 并非常快速地修改数据。反序列化和搜索 XML 数据非常耗时。