我以前使用的DataContext有一个GetTable(type)方法来泛化表格。示例:
context.GetTable(myObject.GetType());
最近,我的团队决定转而使用ObjectContext和Entity Framework。有没有办法通过实体名称获取类似于DataContexts GetTable方法的表而不必指定特定类型?它必须是通用的。
答案 0 :(得分: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);