2017-05-12 13 views
5

多くの異なるクライアントデータベースと通信するアプリケーションを継承しました。エンティティフレームワークと動的スキーマ

クライアントデータベースのほとんどのテーブルには同じスキーマがありますが、税情報が含まれている余分なカスタム列を持つテーブルがいくつかあります(ああ、悪い考えです...私はそれを設定しませんでした)。

これらの余分な列の名前は何でもかまいません。実行時には別のテーブルで参照できるため、これらは既知です。

これらのテーブルを読み書きする(動的列をスキップする)ようにEFを設定することはできますが、私は実際にこの情報を必要としています。

私は自分の最善のルートは、これらの動的な列で埋めることができる余分なプロパティが追加された固定モデルを持っていると思います。

すべての呼び出しでカスタムSQL文を使用せずにEntity Frameworkでこれらの列を動的に読み書きできるようにするにはどうすればよいですか?

これらの余分な列を別々に(カスタムSQLを使用して)読み書きすることができますが、これらの余分な列を認識して正しく処理できるようにEFをオーバーライドする方法が必要です。

ご協力いただければ幸いです。

答えて

1

最初の手順では、_INFORMATION_SCHEMA_または他のメタデータテーブルを直接調べて、コンテキストを設定するテーブルにこれらの列があるかどうかを調べることができます。その情報に基づいて、別のDbContext(ジェネリックはおそらく動作するでしょう)を使うことができますが、MappingConfigurationを使って作成します。そこに列がない場合は無視するか、コンテキストが望むPOCOクラスにマップします。

関連する問題