これは、ここで尋ねた質問の続きです。
簡単な要約:変更が最小限の 2 つの異なるデータベースがあり (1 つのテーブルとその外部キーが 1 つのテーブルにありません)、Linq-To-Sql を使用するインポート ユーティリティで、重複することなく両方のデータベースにデータを入力できるようにしたいと考えています。ロジック。
私の最初のアプローチは、dynamic
2 つの異なるデータベース コンテキストを 1 つの変数に格納することでしたが、このアプローチは機能せず、この目的のためにインターフェイスを使用することをお勧めしました。
今、私は次の問題にぶつかりました:
db コンテキスト クラスからインターフェイスを正しく抽出しました。
public interface IDataContext
{
System.Data.Linq.Table<IFieldCollection> FieldCollections { get; }
System.Data.Linq.Table<IField> Fields { get; }
}
...しかし、2 つの異なるデータベース コンテキスト クラスによってインターフェイスを実装できるようにするために、実際の LINQ クラス ( FieldCollection
、Field
) もインターフェイスに置き換える必要がありました。
Table<IFieldCollection>
現在、Table<IField>
クラスの実装で問題が発生しています。db コンテキスト クラスの自動生成コードは次のとおりです。
public System.Data.Linq.Table<FieldCollection> FieldCollections
{
get
{
return this.GetTable<FieldCollection>();
}
}
したがって、ここで実装IDataContext
するには、戻り値を に変更する必要がありますTable<IFieldCollection>
。データベースから完全なテーブルを取得せずに、プロパティゲッターにキャストTable<FieldCollection>
するにはどうすればよいですか?Table<IFieldCollection>