0
Entity Frameworkを使用していくつかの動的コードを実行しようとしています。私は1つのテーブル(Test1)でモデル(Model1)を持って、それは簡単です。私がしようとしているのは、異なる名前のタスクの後でそれを使用するために、テーブルの名前をプログラム的にTest1モデルにアクセスすることです。私はこのコードを実行したとき、それはentityPropertyEntity Frameworkの文字列でエンティティを取得する
Model1Container m = new Model1Container();
PropertyInfo entityProperty = m.GetType().GetProperties().Where(t => t.Name == "Test1").Single();
var baseQuery = (IQueryable<IIdentity>)entityProperty.GetValue(m, null);
を設定しようとする上で壊れる...
を私はグーグルで探していたと私はFinding entities by key in entity frameworkを発見したが、それはdoesntの仕事だ、または私はすべてのアイデアを持っていません申し訳ありませんが説明します。
アイデア?
私は私が間違って説明したと思います...私が欲しいのは、私がモデルを持っていることを、プログラム的に一方のエンティティのインスタンスを取得することです。この方法では、文字列を使用してm.Test1 ....を書き込まずにエンティティを取得できます。代わりにm ["Test1"](似たような方法ではありません)と似たものが必要です。 Thx – kartGIS
エンティティの部分クラスを作成し、メタデータを使用してフィールドに[必須]またはその他の属性を設定することもできます。http://stackoverflow.com/questions/14059455/adding-validation-attributes-with-anentity-framework- data-modelこれを行うと、各エンティティをIEntityから派生させ、IEntityを定義することができます。その後、アセンブリアセンブリ= Assembly.Load( "Testy20161006")を実行できます。 タイプt = assembly.GetType( "Testy20161006.Controllers。" + "Test"); IEntityエンティティ=(オブジェクト)Activator.CreateInstance(t);クレジットJohn Skeet – kblau
Thx @kblau!私はそれをそのようにした – kartGIS