2013-07-11 52 views
0

我需要調用泛型方法過濾器才能在實體框架數據庫表中執行選擇。檢索通用類型以調用泛型方法

IEnumerable<T> x = Filter<T>(_cust, conditions, value_conditions); 

T可以是我的數據庫的任何表。 使用反射我可以執行篩選方法:

MethodInfo methodFilter = typeof(SearchTool).GetMethod("Filter"); 
mI = methodFilter.MakeGenericMethod(eObject); 
IEnumerable<T> x = mI.Invoke(this, new object[] { allElements, conditions, value_conditions }); 

SearchTool」是其中的濾波器功能聲明的名稱空間的名稱。 爲了在過濾器的通用方法來定義T,我聲明的參數eObject這是定義如下的Type對象:

eObject = Type.GetType("SearchApplication.Customers"); 

SearchApplication」是命名空間,其中命名的數據庫表「客戶」是定義。客戶是一個EntityObject。

問題是:是否有任何其他可能性來檢索EF EntityObject的類型而不是像「SearchApplication.Customers」那樣聲明一個字符串?

在此先感謝 保羅

回答

0

您可以使用typeof

var type = typeof(SearchApplication.Customers); 
+0

是的,OK,你說得對!但是如何從實例中檢索它,例如northwindEntities.Customers。(其他)?請注意,northwindEntities是ObjectContext – rebe21

+0

@ rebe21:在這種情況下,您可以使用'GetType()':'northwindEntities.Customers.GetType();' –

+0

嗯......實際上沒有....它返回一個ObjectSet 類型 – rebe21