Это отношение один к одному. Это работает, только если внешний ключ построен поверх первичного ключа. Вам нужно что-то вроде этого:
public class User
{
[Key, ForeingKey("Manager")]
public int Id { get; set; }
public Manager Manager { get; set; }
}
public class Manager
{
public int Id { get; set; }
public User User { get; set; }
}
Если у менеджера есть пользователь, у пользователя должно быть то же значение PK, что и у менеджера. Вы не сможете определить такое отношение необязательно с обеих сторон, потому что это нарушит FK. В беглом отображении вы должны сделать что-то вроде:
modelBuilder.Entity<Manager>()
.HasOptional(m => m.User)
.WithRequired(u => u.Manager);