動的またはオブジェクトから変数型にキャストすることは可能ですか? ターゲット変数の型は 1 つのジェネリック クラスであり、特定のデータ型のみが異なります。
抽象的な解決策を探していますが、状況は次のとおりです。異なるエンティティに対して単一のLinq2SQLコマンドが必要です-EntityFrameworkコンテキストのGetProperty + GetValueを実行できますが、正確な型にキャストする必要がありますが、これらは変数から来ています入力 - DB テーブルの名前。
私が持っているものの例:
Type NewType = typeof(System.Data.Objects.ObjectSet<>);
NewType.MakeGenericType(new Type[] {"...some type here that's variable accordint to user input - like Person, Address, Contact, ..."});
Object MyObject = Context.GetType().GetProperty("the same variable like above - Person, Address,...", BindingFlags.Public | BindingFlags.Instance).GetValue(Context, null); // this is EntityFramework Context
必要なものの例ですが、それを行う方法がわかりません:
NewType CastedObject = (NewType) MyObject;
// or
NewType CastedObject = Convert.ChangeType(MyObject, NewType);
// or
NewType CastedObject = MyObject as NewType;
だから私はこれを行うことができます:
(from x in CastedObject where x.ID == ID select x).FirstOrDefault();
PHPに精通している人のために、私はこれをやろうとしています:
(from x in Context.$tablename where x.ID == ID select x).FirstOrDefault();