2011-08-02 26 views
1

有没有办法从EF获取我所有的实体类名称列表?我可以使用实体框架4.1:我的所有类名称列表

ObjectContext.GetKnownProxyTypes() 

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

DBContext。

感谢

回答

0

你能不能使用反射来获取从实体的DbContext类型的列表?

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。它应该与你派生的上下文类名相同。