ある種のオブジェクトを扱うコンテンツ管理システムを実装しましたが、クライアントは別の種類のオブジェクトを導入しました。その構造と動作はまったく同じですが、別々です。彼らは、一方が一方のオブジェクトタイプを扱い、もう一方がもう一方を扱うことを除いて、各モードが同じように動作するモードを切り替えられるようにしたいと考えています。
最初のオブジェクトタイプがTBL_OBJECTというテーブルに格納され、2番目のオブジェクトタイプがTBL_OBJECT_NEWというテーブルに格納されているとします。既存のコードを使用する方法を探していますが、オンザフライで切り替えて、他のテーブルに切り替えることができます。構造が同じであるため、これは概念的に可能です。唯一の問題は、L2Eでは、テーブル名が属性として保存されてコンパイルされることです。そのため、SQLステートメントの作成プロセスをフックする方法を探しています。これにより、既存のステートメントは次のようになります。
Dim db as New DataContext
Dim query = From obj in db.Objects
TBL_OBJECTテーブルではなくTBL_OBJECT_NEWテーブルに解決されます。これができれば、大量のコードを再利用できます。やや珍しいシナリオだとは思いますが、それが可能になることを心から望んでいます。どんな助けでも大歓迎です!ありがとう。
ちなみに、私はこれにDevArtのLinqConnectを使用しています。単純なL2Eアプローチがこれにどれだけ適用されるかはわかりません。一方、L2EではなくDevArtでそれを行う方法を知っている場合でも、それは非常に役立ちます。