В моей базе данных у меня есть одна таблица, которая содержит список трейлов, одна для загрузки отсеков и одна соединительная таблица. Последний содержит список того, когда какой трейлер был в каком погрузочном отсеке. Пока все хорошо.
У меня также есть представление базы данных с именем CurrentLoadingBayAssignment. Он содержит список всех погрузочных отсеков и обнуляемую ссылку на трейлер. Если в грузовом отсеке прямо сейчас есть трейлер, он будет содержать его идентификатор, иначе NULL.
Как видите, это отношение от 0,1 до 0,1. Конкретный трейлер может находиться сейчас в одном загрузочном отсеке или где-то еще. И каждый погрузочный отсек может иметь только один трейлер или бесплатно.
Поэтому я вручную добавил отношение к моей модели данных между таблицей и представлением. Я установил кратность обоих концов на 0..1, что мне кажется логичным. Это, однако, не представляется возможным. Я получаю сообщение об ошибке # 113, что множественность на конце представления должна быть установлена на *, потому что столбец ID_LoadingBay не является первичным ключом. На самом деле, этого даже не может быть, потому что поле обнуляется.
Поэтому моей следующей идеей было установить уникальное ограничение для поля представления ID_LoadingBay, но вы не можете установить ограничения для представлений на конце базы данных, и я также не вижу опции на стороне дизайнера при использовании База данных Первый подход. Кажется, есть свойство / аннотация IsUnique для Code First, но я не использую этот подход.
Есть ли способ заставить Visual Studio игнорировать эту ошибку? Или есть какая-то скрытая особенность, заставляющая VS поверить, что поле зрения уникально по дизайну? Я мог бы просто обойти эту проблему, установив множественность * и получить доступ к полю с помощью SingleOrDefault()?
, но я бы предпочел должным образом напоминать реальность моей базы данных. И это соотношение от 0,1 до 0,1.
У вас есть идеи, как этого добиться?