4

如何获取从实体数据模型 (*.edmx) 生成的所有实体类型的列表?

我已经拥有数据库中的表名和模型实例 (.edmx)。

我想要一个所有数据实体的类型实例。

假设我的数据库有两个表: Employee EmployeeType

然后模型将生成 2 个类并映射数据。我正在搜索的是一种获取列表(类型)的方法。在这种情况下,结果列表将包含一个 Employee.GetType() 和 EmployeeType.getType() 的实例

谢谢!

(VS2010、VB.NET、EF4)

4

2 回答 2

2

其中一种方法是:

((EdmItemCollection)ctx
    .MetadataWorkspace
    .GetItemCollection(DataSpace.CSpace))
    .GetItems<EntityType>()

我以前没有尝试过,但您甚至可以直接从工作区获取项目:

ctx.MetadataWorkspace.GetItems<EntityType>(DataSpace.CSpace)

如果您使用的是 DbContext,则可以按如下方式获取 ObjectContext:

((IObjectContextAdapter)ctx).ObjectContext
于 2013-01-24T23:23:10.410 回答
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);
    }
}

对象查询 - MSDN

于 2013-01-24T20:34:01.170 回答