Я потратил часы, пытаясь найти ответ на этот вопрос, и оказался пустым.
Я совершенно новичок в .NET и MVC - я закончил учебник по MvcMusicStore и теперь начал работать над болеесложный - но похожий проект.Я говорю это только для того, чтобы объяснить свой низкий уровень опыта и знаний в этой области, и надеюсь, что любые ответы могут быть учтены в этом.
В любом случае, у меня проблема в том, что у меня есть одна таблица «Светильники»который имеет два атрибута «TeamId1» и «TeamId2», оба они сопоставляются с другой таблицей «Team».
Я хочу, чтобы каждый прибор также включал данные Team для Team1 и Team2.До сих пор я использовал метод Include ObjectQuery для выполнения аналогичных операций без проблем.
Однако я обнаружил, что .NET, MVC или Entity Framework или что-то еще не были счастливы, когда я сделал это.После долгих экспериментов я понял, что он будет работать только тогда, когда внешний ключ имеет то же имя, что и таблица, на которую он ссылается.По сути, мой атрибут должен иметь имя «TeamId», иначе он просто не будет работать.Это не было бы проблемой, если бы у меня не было другого атрибута, который также должен был отображаться на эту таблицу.У меня явно не может быть двух атрибутов с одинаковыми именами в таблице.Так что я застрял.
Я могу только предположить, что можно сопоставить таблицу с именем атрибута, отличным от «TeamId», но я не могу найти какую-либо инструкцию / предыдущий пост / документацию, объясняющую, каксделайте это.
Я рассмотрел возможность разбить свои данные Fixture и иметь таблицу Fixture, а затем отдельную таблицу для хранения идентификаторов команд, результатов и т. д., однако это выглядит немного излишним, учитывая, что каждый прибор будетникогда не иметь более двух команд.Поэтому я называю этот План B.
Я бы предпочел не обойти эту проблему, если это возможно, поскольку не представляется необоснованным, чтобы это было возможно с помощью EF и ObjectQuery.Мне также известно, что я могу создавать запросы вручную, указывая соединения.К сожалению, мой опыт работы с LINQ ограничен, и множественные объединения на одной таблице не сработали каждый раз, когда я пробовал это до сих пор.
Так что мне действительно нужно знать, есть ли какая-то настройка или кодЯ могу использовать для достижения вышесказанного, не прибегая к LINQ или реструктуризации моей таблицы Fixtures.
Редактировать:
Это изображение показывает соответствующие модели.Как есть: это работает, однако запросы, очевидно, возвращают только один экземпляр команды, связанный со столбцом «TeamId1».Прокомментированный код показывает, что мне нужно также иметь в модели (насколько мне показывал мой ограниченный предыдущий опыт).Так что моя Модель содержит две отдельные команды, связанные с двумя отдельными столбцами.