有没有办法从EF获取我所有实体类名的列表?我可以用
ObjectContext.GetKnownProxyTypes()
- 但此方法仅返回已在此当前上下文中使用的类型。我需要DBContext中的所有类型。
的DbContext。
由于
答案 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获取实体类型列表?