如何获取从实体数据模型(* .edmx)生成的所有实体类型的列表?
我已经拥有数据库中的表名和模型实例(.edmx)。
我希望有一个所有数据实体的Type实例。
让我们假设我的数据库有两个表: 雇员 EmployeeType
然后模型将生成2个类并映射数据。我正在搜索的是一种获取List(类型)的方法。 在这种情况下,结果列表将计算Employee.GetType()和EmployeeType.getType()的实例
谢谢!
(VS2010,VB.NET,EF4)
答案 0 :(得分:2)
其中一种方法是:
((EdmItemCollection)ctx
.MetadataWorkspace
.GetItemCollection(DataSpace.CSpace))
.GetItems<EntityType>()
我之前没有尝试过,但您甚至可以直接从工作区获取项目:
ctx.MetadataWorkspace.GetItems<EntityType>(DataSpace.CSpace)
如果您正在使用DbContext,您可以按如下方式获取ObjectContext:
((IObjectContextAdapter)ctx).ObjectContext
答案 1 :(得分:0)
using (AdventureWorksEntities context = new AdventureWorksEntities())
{
IQueryable<Product> productsQuery = from product in context.Products
select product;
Console.WriteLine("Product Names:");
foreach (var prod in productsQuery)
{
Console.WriteLine(prod.Name);
}
}