質問: 私は多くの行(Entity Frameworkオブジェクトから構築)をSQL Serverに挿入したい。問題は、一部の文字列プロパティの長さがデータベースの列の長さを超えているために例外が発生し、すべての行がデータベースに挿入できなくなることです。 ですから、長すぎる行を自動的に切り捨てるようにSqlBulkCopyに指示する方法があるのでしょうか?もちろん、DataTableに挿入する前に、限られた長さを超えた場合は、各プロパティをチェックして部分文字列を取りますが、プログラム全体が遅くなります。
回答: 一括処理には必ずステージング/ロードテーブルを使用してください。 次に、実際のテーブルにフラッシュする前に、データを処理、クリーニング、スクラブなどができます。これには、LEFT、ルックアップ、重複排除などが含まれます。 そう: 1. *ワイド*列を持つステージングテーブルをロードする 2. `INSERT realtable (..) SELECT LEFT(..), .. FROM Staging`を使用して、ステージングから "実際の"