2011-08-02 79 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。它應該與你派生的上下文類名相同。