3番目のソースからインポートされた数百のテーブルを含むデータベースがあります。エンティティフレームワークを使用すると、これらのテーブルはE_1、E_2、E_3 ...というラベルの付いたObjectSetになります。すべてのテーブルには共通の列セットがあり、1つの関数でクエリを実行できます。
私は次のコードを持っています:
namespace Foo{
public static class Data{
public static MyEntities dataContext = new MyEntities();
public static void getData<T>(string entityName) where T : class
{
string queryString = "SELECT result FROM ";
queryString += Data.dataContext.DefaultContainerName + "." + entityName;
ObjectQuery<T> myQuery = Data.dataContext.CreateQuery<T>(queryString, null);
// do stuff
}
public static void test(){
string entityName = "E_1";
Data.getData<E_1>(entityName);
}
}
test()では、文字列 "E_1"を関数getData()に渡し、ジェネリック型パラメーターとして型クラスFoo.E_1をgetData<>に挿入します。
実際には、E_1は実行時までわかりません。実行時にentityName文字列を作成しますが、この文字列をgetData <>に必要なジェネリックパラメータータイプに変換するにはどうすればよいですか?
ありがとう。