質問: コードを使ってエンティティフレームワーク6内のエンティティを動的に構築することは可能ですか? 実行時にこれらのエンティティにプロパティを追加することも可能ですか? これらのエンティティは外部キーを使用して相互参照できますか? 可能であれば、誰かが正しい方向に向けることができたら、私はそれを本当に気に入るでしょう。 **EDIT** 私は何を望んでいるのかをより反映するためにタイトルを変更しました。なぜ私は質問したのですか? 基本的には、ユーザーがオブジェクト(テーブルの列)のプロパティと各オブジェクト(テーブル間の関係)への参照を使用して、必要なオブジェクト(テーブル)を定義できるシステムを作成したいと考えています。 各オブジェクトはIdプロパティ/列を持ちます。私はテーブル構造のようなeavでこれらの定義を実行することを考えていたが、私は設計時に定義された他のオブジェクトを持っていて、これらのオブジェクトに対してlinqクエリを使いたい。私はまた、ユーザーがこのデータを報告したいので、これらのオブジェクトに対してlinqクエリを構築できるようにしたいと思います。 linqクエリをビルドするには、この(多分)のために動的なlinqを使うことができますか? 現在、このようなシステムを作成するために、私は多くのテキストフィールド、多くの数値フィールド、多くの関係フィールド、およびユーザーが望むものを使用できるテーブルを作成しました。しかし、これはちょうど1つのテーブルであり、私はこれが最後の一番下に私をかむことになると思います。なぜ私は次のレベルに持ち帰り、それぞれのオブジェクトに対して別のテーブルを作成したいのですか? 誰かがより良い方法を知っていたり、似たような経験をしていると、意見を聞いてうれしいです。
回答: リフレクションを使用してEFモデルを動的に作成することができます。 ``` protected override void OnModelCreating(DbModelBuilder modelBuilder) { var entityMethod = typeof(DbModelBuilder).GetMethod("Entity"); foreach (Type type in ...) { entityMethod.MakeGenericMethod(type) .Invoke(modelBuilder, new object[] { }); } base.OnModelCreating(modelBuilder); } ```