public void ModelBuilder_BindsToTheClosestEntitySet_ForNavigationProperties() { ODataConventionModelBuilder builder = new ODataConventionModelBuilder(); builder.EntitySet <Vehicle>("vehicles"); builder.EntitySet <CarManufacturer>("car_manufacturers"); builder.EntitySet <MotorcycleManufacturer>("motorcycle_manufacturers"); IEdmModel model = builder.GetEdmModel(); model.AssertHasEntitySet("vehicles", typeof(Vehicle)); IEdmEntitySet vehicles = model.EntityContainers().Single().FindEntitySet("vehicles"); IEdmEntityType car = model.AssertHasEntityType(typeof(Car)); IEdmEntityType motorcycle = model.AssertHasEntityType(typeof(Motorcycle)); IEdmEntityType sportbike = model.AssertHasEntityType(typeof(SportBike)); Assert.Equal(2, vehicles.NavigationTargets.Count()); vehicles.AssertHasNavigationTarget( car.AssertHasNavigationProperty(model, "Manufacturer", typeof(CarManufacturer), isNullable: true, multiplicity: EdmMultiplicity.ZeroOrOne), "car_manufacturers"); vehicles.AssertHasNavigationTarget( motorcycle.AssertHasNavigationProperty(model, "Manufacturer", typeof(MotorcycleManufacturer), isNullable: true, multiplicity: EdmMultiplicity.ZeroOrOne), "motorcycle_manufacturers"); vehicles.AssertHasNavigationTarget( sportbike.AssertHasNavigationProperty(model, "Manufacturer", typeof(MotorcycleManufacturer), isNullable: true, multiplicity: EdmMultiplicity.ZeroOrOne), "motorcycle_manufacturers"); }