6

我正在尝试在 EF 之上编写一些扩展,并且我需要能够首先检查代码 ObjectContext 并检索其中的实体类型。我觉得这应该在元数据工作区的某个地方可用,但我不确定在哪里看。我正在使用 EF 5。

请注意,我们不使用任何类型的代码生成来创建上下文,也不会将特定类型的 DbSet 访问器放在 DbContext 基类上。因此,我不能简单地反映 DbContext/ObjectContext 来查看这些属性。

4

1 回答 1

7

我认为这应该有效:

var objectItemCollection = 
   (ObjectItemCollection )((IObjectContextAdapter)ctx)
   .ObjectContext.MetadataWorkspace.GetItemCollection(DataSpace.OSpace);

foreach(var entityType in objectItemCollection.GetItems<EntityType>())
{
    Console.WriteLine(objectItemCollection.GetClrType(entityType).FullName);
}
于 2013-09-23T02:20:45.857 回答