Я создал базовый тестовый проект Entity Framework, который использует подход Code-First для заполнения базы данных, которая имеет две таблицы.Почему код EntityFramework сначала игнорирует значение ключа, заданное в коде
Однако я заметил, что структура, как представляется, автоматически присваивает значение записи, которая используется как внешний ключ для другой таблицы, несмотря на то, что я уже установил значение в коде.
При проверке через отладчик я вижу, что свойство объекта верное до тех пор, пока не будет вызвана функция SaveChanges(), но при проверке базы данных набор, который я установил, был перезаписан автоматически сгенерированным значением.
я могу обойти эту проблему, применив следующий атрибут к свойству:
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
Однако, я думал, что ценности были только автоматически сгенерированных, если значение не было установлено в коде. Я ошибаюсь, или такое поведение можно ожидать?
Я заметил, что такое же поведение неверно для первичного ключа, который не действует как внешний ключ.
Любая помощь очень ценится.
Покажите нам код, пожалуйста. –
Трудно сказать, не видя больше, но я собираюсь угадать. Вы устанавливаете атрибут [Key] в своем столбце внешнего ключа? Если да, то нет. По моему мнению, [Key] предназначен для первичного ключа и не должен использоваться для определения внешнего ключа. –
Спасибо за это, хотя я не добавлял никаких атрибутов в свойство до тех пор, пока не столкнулся с проблемой. – user1762339