Мне кажется, что причина того, что вы сталкиваетесь с перекрестными ссылками в вашей модели, заключается в том, что вы искусственно разделяете Бренд и Транспортное средство как родственные объекты высшего уровня.Если вы начнете с Brand , который, по сути, эквивалентен Make , он станет истинной сущностью верхнего уровня.Нет необходимости отделять Марка для каждого типа транспортного средства (автомобиль, мотоцикл, грузовик и т. Д.);просто представьте сущность Модель между Марка и Транспортное средство , и я думаю, что это решит большинство ваших проблем сшивки.
Тогда отношения не будутне только родитель-ребенок, но более точный состав.Таким образом, у вас есть Make , который имеет составное отношение один-ко-многим с Model , который, в свою очередь, имеет составное отношение один-ко-многим к Vehicle ,Транспортные средства - это экземпляры модели Model , так что в действительности там также нет родительско-дочерних отношений.С этой структурой нет необходимости разветвлять EF для каждого типа Vehicle , потому что это только часть того, что описывается сущностью Model .
Я надеюсь, что мой ответ полезен, и что я не упустил ни одного из основных моментов того, что вы пытаетесь смоделировать -