0

これが悪い質問になるとすみません。私はデータベースプログラミングをほとんどしていません。これは、最初から読み上げる時期かもしれません。おそらくいつかはそうするでしょうが、今は時間に追われています。

データベースのチャンクをキャッシュせずに、OracleデータベースでDataSetのような操作(挿入、削除など)を実行する方法はありますか?任意のフィールド/列を持つオブジェクトに対して厄介なSQLクエリを入力しないようにするための何かを探しています。DataRowを定義して挿入する(またはキーに基づいて更新する)ことができる場所。データベース全体をキャッシュできない可能性があるため、キャッシュを使用してこれを行う方法がわかりません。かなり大きいです。

エンティティはほとんど任意であるため、それらをラップする静的クラスを定義したくありません。

4

3 に答える 3

2

あなたの質問を完全に理解したかどうかはわかりません。Upsertを実行するメソッドを使用してクラスを作成できます。そのメソッドはDataRowを受け取り、データ行の値に従ってデータベースを挿入または更新するようにメソッドにルールを設定できます。ただし、挿入する、またはレコードがデータベースに存在するかどうかを確認してから更新するために、独自のSQLクエリを作成する必要があります。

ORMを使用してみませんか。Entity frameowkrk、NHibernateのようなもの

  1. エンティティフレームワーク
  2. NHibernate

SQLクエリを作成する必要はなく、オプションをカスタマイズしてLazzyLoadingを有効にすることができます。

于 2012-05-28T12:41:56.230 に答える
1

タイプを使用している場合DataSetFillメソッドのパラメーターを指定できます。DataTable必要な行だけで埋めるようにします。

を使用している場合はDataReader、クエリ文字列に任意の種類のクエリを指定できます。

基本的に、変更する行のみを「キャッシュ」できます。

于 2012-05-28T12:46:25.280 に答える
0

本当に必要なものを伝えるのは少し難しいです...

ただし、Oracleデータディクショナリビューでメタデータをクエリし、それらの結果に基づいてSQlステートメントを動的に作成できます。

于 2012-05-28T12:31:58.547 に答える