まずそもそも、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が空であれば特に意味を持ちません。
> C 「主キー比較に使用する行の特定のバージョン」とは、OverwriteChangesは、Originalの主キーデータを、PreserveChangesは、Currentの、Upsertは、Originalが存在すればOriginalを存在しなければCurrentの値を比較するという意味であってますか?