Search code examples
c#.netentity-frameworkentity-framework-4

EF, get entity tree


I have EF model and I would like to get list of entities names which are somehow related with parent entity.

Lets say thay I have this model.

If I choose entity "Orders" I should get as result Orders, Customers, Order_Details nad CustomerDemographics.

It there a way how to do this? Thank you.


Solution

  • It is possible to get entity names this way and without reflection:

    using (var context = new ModelContainer())
    {
        var container =     context.MetadataWorkspace.GetEntityContainer(context.DefaultContainerName, DataSpace.CSpace);
        var entitySet =     container.BaseEntitySets[someEntityName];
        var navProperties = set.ElementType.Members.Where(member => member.BuiltInTypeKind == BuiltInTypeKind.NavigationProperty).Select(member => member.Name).ToList();
    }