В EF Database First Approach при создании экземпляра модели не удается определить основной конец ассоциации между типами

В основном у меня есть две таблицы. Основная таблица, скажем, "Foo", которая имеет идентификатор столбца PK типа int, и зависимая таблица "Bar", которая имеет столбец PK FooID типа int, который также является идентификатором FK to ID "Foo".

Как я понял, проблема в том, что зависимому типу не хватает атрибута [Foreign Key] в свойстве первичного ключа. Проблема может быть решена на стороне зависимого типа, либо указав атрибут [Foreign Key] на PK, либо указав атрибут [Required] в свойстве навигации PK.

Я попытался добавить [Обязательно], но это не сильно помогло. Проблема была решена, но модели не смогли пройти проверку из-за этого. Я не хочу, чтобы они были проверены, потому что эти свойства иногда могут быть нулевыми, по крайней мере, когда я использую их для вставки в БД. Отключение проверки проверки в SaveChanges() также не помогло, потому что я начал получать другие странные исключения.

Теперь я хочу попробовать указать атрибут [ForeignKey], но не могу понять, как это сделать. У меня нет опыта работы с T4 (*.tt файл). Я не знаю, как проверить свойство, если это ФК и не знаю, как получить его имя. Поэтому, пожалуйста, помогите мне.

1 ответ

Я попытался воссоздать EDMX и запустил некоторые вставки БД на другом компьютере. Как ни странно, эта ошибка не возникает на этой машине. Недавно выяснилось, что EF не нужен DataAnnotaions, потому что он использует отображения из файлов XML, а не из кода отсюда. Таким образом, я предполагаю, что проблема была в том, что мой старый компьютер как-то не мог правильно создать EDMX или не мог использовать отображения из xml. Причина мне пока не ясна. Но проблема была решена.

Другие вопросы по тегам