DOBON.NETプログラミング道掲示板

■35106 / 1階層)  LoadOptionのパラメータの意味
□投稿者/ Hongliang 大御所(631回)-(2022/07/20(Wed) 10:19:27)
  • アイコンまずそもそも、DataTable.Load(IDataReader, LoadOption)は、
    > Fills a DataTable with values from a data source using the supplied IDataReader. If the DataTable already contains rows, the incoming data from the data source is merged with the existing rows according to the value of the loadOption parameter.
    > IDataReaderによって提供されるデータソースの値でDataTableを満たします。データテーブルがすでに行を含んでいる場合、データソースからのデータはloadOptionパラメータの値に従って既存の行とマージされます。
    というメソッドであり、loadOptionパラメータは「データソースからのデータ」と「DataTableに既に存在しているデータ」のマージの方法を指定するものです。
    例えばDataTableが空であれば特に意味を持ちません。

    > @ プライマリーデータソース、セカンダリーデータソースって何ですか?Load()の結果Setが複数あり、一つ目をプライマリー、二つ目以後を纏めてセカンダリーと呼んでるのでしょうか?

    複数のデータソースを扱う場合の話ですね。
    大本のデータソースとなるDBからいったんFillして、追加分をまとめたXMLをセカンダリデータソースとしてLoadでマージするとか。

    > A 「プライマリ データ ソースから送信され」とは、Dt.Load()とした場合のDtにスキーマ情報が無い場合は、プライマリーデータからスキーマ情報をすべて取得することを前提としているという解釈でしょうか?

    この記述はスキーマ情報とは関係ないです。
    DataTableがスキーマを持っていない場合の挙動は別の段落に記載があります。
    (そしてDataTableがスキーマを持っていないならそのDataTableは空ということですから、loadOptionは意味を持ちません)

    > B 「データをプライマリ データ ソース DataTableに反映することを前提」とは、Dt.Load() のDtにスキーマ情報が存在する場合は、必要に応じて列の追加処理を行うという意味でしょうか?

    ここもスキーマとは関係ないです。
    スキーマに関することは別段落に記載があり、その際の挙動は表にまとめられています。
    OverwriteChanges/PreserveChangesでLoadしたデータはプライマリデータソースからのデータとみなし、あとあとデータソースに反映させることができるようにDataTableの変更を追跡する、ということです。
    一方Upsertは、Loadするデータがセカンダリデータソースからのデータであるとみなされます。

    > C 「主キー比較に使用する行の特定のバージョン」とは、OverwriteChangesは、Originalの主キーデータを、PreserveChangesは、Currentの、Upsertは、Originalが存在すればOriginalを存在しなければCurrentの値を比較するという意味であってますか?

    表を見る限り、OverwriteChangesとPreserveChangesは同じになっていますが?
違反を報告
削除キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←LoadOptionのパラメータの意味 /Wan 返信無し
 
上記関連ツリー

Nomalアイコン LoadOptionのパラメータの意味 / Wan (22/07/20(Wed) 08:21) #35105
Nomalアイコン LoadOptionのパラメータの意味 / Hongliang (22/07/20(Wed) 10:19) #35106 ←Now
Nomalアイコン Re[1]: LoadOptionのパラメータの意味 / 魔界の仮面弁士 (22/07/20(Wed) 16:38) #35107
  └Nomalアイコン Re[2]: LoadOptionのパラメータの意味 / Wan (22/07/27(Wed) 18:33) #35117 解決み!

All 上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信

Mode/  Pass/


- Child Tree -