实体框架4.1:我所有类名的列表

时间:2011-08-02 19:59:45

标签: .net entity-framework-4.1

有没有办法从EF获取我所有实体类名的列表?我可以用

ObjectContext.GetKnownProxyTypes()

- 但此方法仅返回已在此当前上下文中使用的类型。我需要DBContext中的所有类型。

的DbContext。

由于

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

ObjectContext context = ((IObjectContextAdapter)dbContext).ObjectContext;
EntityContainer container = context.MetadataWorkspace
   .GetEntityContainer(context.DefaultContainerName, DataSpace.CSpace);
string[] typeNames = container.BaseEntitySets
                              .OfType<EntitySet>()
                              .Select(es => es.ElementType.Name);

我不确定适配器是否会正确配置DefaultContainerName。它可能与派生的上下文类名相同。

答案 1 :(得分:0)

你能否使用Reflection从DbContext获取实体类型列表?