Вы должны явно указать множество концов ассоциации:
modelBuilder.Entity<Person>()
.HasRequired(p => p.Department)
.WithMany(d => d.People)
.HasForeignKey(p => p.DepartmentId)
.WillCascadeOnDelete(false);
В противном случае EF будет предполагать, что существует две ассоциации: Одна, которая не отображается в Department
с внешним ключом DepartmentId
и свойство навигации Department
в классе Person
, как вы определили в коде Fluent, - и еще одна ассоциация, которая принадлежит открытому свойству навигации People
, но с другим не открытым концом в Person
и автоматически создается внешний ключпо EF.Это другой ключ, который вы видите в базе данных.