2011-08-31 42 views
1

我以前使用的DataContext有一個GetTable(類型)方法來一般地獲取表。例如:

GetTable相當於ObjectContext

context.GetTable(myObject.GetType()); 

最近我的團隊決定切換到使用ObjectContext的實體框架。有沒有辦法通過類似於DataContexts GetTable方法的實體名稱獲取表而不必指定特定類型?它必須是通用的。

回答

4

有的確是一個很簡單的方法來做到這一點,像這樣:

public IQueryable GetTable<T>(T entity) where T : class 
{ 
    return context.CreateObjectSet<T>(); 
} 

現在,如果我創建一個Person對象,並傳遞給它的通用方法,下面的「allPeople」變量將是一個IQueryable來自我的數據庫的人,你可以迭代。

Person person = new Person(); 
IQueryable allPeople = GetTable(person); 
+0

很酷謝謝! – MBU