は大きなオフィスの電話システムを考えてみましょう:
私のオフィスには、内線電話システムを持っています。しかし、すべての電話には、外部の電話番号(実際のTELCO回線のグループの1つを使用する仮想番号)もあります。私は自分の電話番号を直接ダイヤルして別のオフィスに電話をかけることができ、コールは社内の電話システム(1ホップ)を経由してルーティングされます。あるいは、私はその電話の公衆番号をダイヤルして、建物のシステムからTELCO交換局への通話ルートを通ってから、建物のシステムを経由してオフィスの内線(3ホップ)に戻ることができます。
最初のSQL接続は、接続文字列で指定されたサーバーに接続するときの標準SQL接続と同じように動作します。新しいネイティブSQL接続を使用して新しい接続が作成されます。これは、他のオフィス電話の公衆電話番号の全部をダイヤルするのと同じように動作します。もちろん、ローカルマシンに接続していますが、接続は別の方法でルーティングされています。
コンテキスト接続には、SQLCLRオブジェクトを実行している既存の接続を使用する新しいSqlConnectionインスタンスがあります。既存の/ローカルのコンテキストを使用しています。これは私のオフィスメイトの内線番号に直接ダイヤルするようなものです。ローカルコンテキストとより効率的です。
私は肯定的ではありませんが、コンテキスト接続を使用すると、SQLCLRオブジェクトへの呼び出しもコンテキストのトランザクションに参加すると考えています。私が間違っているなら誰か私を修正してください。
Peter