SQL Serverでは、一時的なインポートテーブル( 'インポート')に多数の列と別のテーブル( 'Production')カラム数が多く、のカラム数が同じである場合は、(すべてではありません)、というように、同じ名前のカラムの値を(処理なし)に書き込むだけです。同じデータベースで、両方のテーブルの名前が同じ列には同じ型があります。LINQを使用して1つのSQL Serverテーブルから別のテーブルに同じ名前の列に値をコピーする方法
は通常、我々はこのようにそれを実行します。多くの列がある場合に迷惑と何とか冗長だ
// Lots and lots of columns copied without processing
Production.ColumnA = Import.ColumnA;
Production.ColumnB = Import.ColumnB;
Production.ColumnC = Import.ColumnC;
// [...]
// Some with processing
Production.ColumnQ1 = DoSomething(Import.ColumnQ2);
を。何この擬似コードのように、自動的にそれらの均等という名前の列をコピーするための最良の方法だろう。
foreach(var importRow in ImportRows)
foreach(Column col in Production.Columns)
if(Import.Columns.Contains(col.Name)) newProductionRow[col] = importRow[col];
(1がインデックス付きのDataTableを使用して何ができるかと非常に似ていますが、我々はそれをしたくありませんここでは)
+1は完璧な答えと素晴らしいリンクを起動します。プロパティの複製は、この種の問題を処理する最善の方法です。 –
私にも良く見えます。ありがとう! – Olaf