我正在使用EF 4,我想创建泛型方法,这将允许我从只有两列的表中加载数据 - 我确信它存在于每个表和实体中。 我的问题是我不知道如何获得只知道实体类型的实体列表。
Dictionary<long, string> GetList<T>() where T : System.Data.Objects.DataClasses.EntityObject
{
Dictionary<long, string> list = new Dictionary<long, string>();
//var entityList = this.context.GetEntitiesByType(T);
//
foreach (var entity in entityList)
{
list.Add(typeof(T).GetProperty("Id").GetValue(entity, null),
typeof(T).GetProperty("Name").GetValue(entity, null))
}
return list;
}
是否有可能获得此列表?作为一种解决方法,我可以使用方法
获取表名 dbContext.GetTableName<T>();
并尝试执行sql查询,但这似乎是个坏主意。有什么想法吗 ?
答案 0 :(得分:1)
你应该使用CreateObjectSet&lt; T&gt;()返回一个ObjectSet&lt; T&gt;。
用法:
context.CreateObjectSet<T>()
了解更多信息http://msdn.microsoft.com/en-us/library/dd382944(v=vs.100).aspx