実行時に型をIQueryableに渡して実現することは可能ですか?実行時に型をIQueryableに渡す
と同様に、以下のように
//Get type at runtime
Type type = Type.GetType("fully qualified class name");
IQueryable<type> test = // <-returned object of this type
実際の問題:私は、特定のタイプの右側のオブジェクトを取得することができていますが、それはクエリ変数の型にキャストされていない 下。また、私はクエリの型を知っているだろう。
Dictionary<string, Type> myDictionary = new Dictionary<string, Type>()
{
{ "tableName", typeof(tableName) }
};
//Below I am able to get right side object with specific type, but that is not casting to type of query variable. Also I will have known type for query.
IQueryable<Type> query= EFContext.Set(myDictionary[tableName]).AsQueryable();
このクエリオブジェクトを使用して、select/where条件を動的に渡してデータを選択します。
var data = query.Select(x=> new
{
id= x.id,
name= x.name .. etc
}).ToList();
後で、このテスト変数を使用してデータを動的にクエリする必要があります。
また、このシナリオを解決するための代替方法をご提案ください。
このようにするといいえ、いいえ。ジェネリックメソッドを作ることはできますが、コンテキストなしでは伝えることはできません。 –
これを行うことは、プログラム構造に大きな問題があることを示しています。あなたの究極の目標は何ですか? – MrZander
私は可能だと思いますが、その場でリポジトリ(テーブル)とタイプをマッピングする必要があるため、サービスレイヤは非常に複雑になります。また、ナビゲーションプロパティの処理は非常に複雑になります。 – Sparrow