0

如果这将是一个糟糕的问题,我很抱歉。我做过很少的数据库编程。这可能是从头开始阅读它的时候了,我可能会在某个时候这样做,但我现在时间紧迫。

有没有一种方法可以在 Oracle 数据库上执行类似 DataSet 的操作,例如插入、删除等,而无需缓存一大块数据库?我正在寻找一些东西来避免为具有任意字段/列的对象输入笨拙的 SQL 查询。我可以定义一个 DataRow 并插入它(或根据某个键更新它)。我不知道如何通过缓存来做到这一点,因为我不可能缓存整个数据库。它相当大。

因为实体在很大程度上是任意的,我不想定义静态类来包装它们。

4

3 回答 3

2

我不确定我是否完全理解你的问题。您可以创建一个具有执行 Upsert 的方法的类。该方法将接收 DataRow,您可以在该方法中设置规则以根据数据行中的值插入或更新数据库。但是您必须编写自己的 SQL 查询来插入或检查数据库中是否存在记录,然后进行更新。

为什么不使用 ORM。实体框架,NHibernate 之类的东西

  1. 实体框架
  2. 休眠

您不需要编写任何 SQL 查询,并且可以自定义选项以启用LazzyLoading

于 2012-05-28T12:41:56.230 回答
1

如果您使用 typedDataSet您可以为您的 Fill 方法提供参数。使它们仅填充DataTable必要的行。

如果您正在使用DataReader,您可以在查询字符串中提供任何类型的查询。

基本上,您只能“缓存”您想要更改的行。

于 2012-05-28T12:46:25.280 回答
0

有点难以说出你真正需要什么......

但是您可以查询 Oracle 数据字典视图以获取元数据,然后根据这些结果动态构建您的 SQl 语句。

于 2012-05-28T12:31:58.547 回答