CLR プロシージャにメモリ内 DataTable があります。重要な処理の後、DataTable には、データベース内のテーブルにロードする必要がある大量のデータが含まれています。残念ながら、コンテキスト接続を使用しているため、 SqlBulkCopy は機能しません (エラーがスローされます: The requested operation is not available on the context connection Outline of context definitions )。
追加の通常の接続を構築し、それを使用して SQLBulkCopy を実行することを考えています。これは、コンテキスト接続を介して通常の接続を使用するオーバーヘッドを考えると、かなりばかげているように思えます。DataTable の行を繰り返し処理し、それぞれにレコードを挿入することを考えましたが、サイズが非常に大きく、SQLBulkCopy の方が適しているようです。
私たちは DataTable と結婚しておらず、CLR プロシージャから膨大な量のデータをデータベースに挿入する最良の方法を探しているだけです。DataTable に関する最後の注意事項は、基になるデータベース テーブルを表していますが、DataSet または TableAdapter を介してテーブルに関連付けられていません。CLR プロシージャでこれを行う手段は、すぐにはわかりませんでした。これを行い、AcceptChanges または Update メソッドを使用することは、許容できる解決策です。