2013-09-23 9 views
6

Próbuję napisać kilka rozszerzeń na EF i muszę mieć możliwość sprawdzenia kodu najpierw ObjectContext i pobrania typów encji w nim. Czuję, że powinno to być dostępne gdzieś w przestrzeni roboczej metadanych, ale nie jestem pewien, gdzie szukać. Używam EF 5.Jak uzyskać najpierw listę typów encji z ObjectContext w środowisku wykonawczym za pomocą kodu EF?

Pamiętaj, że nie używamy żadnego rodzaju generowania kodu do tworzenia naszych kontekstów, ani nie umieszczamy specyficznych dla typu akcesorów DbSet w klasie bazowej DbContext. Dlatego nie mogę po prostu odzwierciedlić kontekstu DbContext/ObjectContext, aby sprawdzić takie właściwości.

Odpowiedz

6

myślę, że to powinno działać:

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

foreach(var entityType in objectItemCollection.GetItems<EntityType>()) 
{ 
    Console.WriteLine(objectItemCollection.GetClrType(entityType).FullName); 
} 
Powiązane problemy