мы только что обновили Entity Framework Core с 2.1 до 2.2.Preview3.Кажется, что мигратор / модельщик изменился, и мне интересно, если это ошибка или исправление.
Если есть следующий объект:
public class User {
public string UserName { get; set; }
public Guid? PasswordGUID { get; set; }
[ForeignKey("PasswordGUID")]
public Password Password { get; set; }
}
Класс объекта Пароль не имеет свойства навигации длякласс сущности User.
В EfCore 2.1 отношение «Пароль пользователя» получило следующие строки в файле modelsnapshot:
...
u.Property<Guid?>("PasswordGUID");
...
u.HasIndex("PasswordGUID");
...
u.HasOne("Password", "Password")
.WithMany()
.HasForeignKey("PasswordGUID");
Теперь после обновления с EfCore 2.1 до 2.2.Preview3 (классы сущности сделалибез изменений) модель получила следующие изменения:
...
u.Property<Guid?>("PasswordGUID")
.IsRequired();
...
u.HasIndex("PasswordGUID")
.IsUnique();
...
u.HasOne("Password", "Password")
.WithOne()
.HasForeignKey("PasswordGUID")
.OnDelete(DeleteBehavior.Cascade);
Итак, как указано выше, мой вопрос: это правильно?Должен ли я теперь «отменить» эти изменения в API модели Fluent Fluent или это ошибка?
Sidenote: Странно, я заметил, что с EfCore 2.1 такое же поведение, когда я удалил атрибут »[ForeignKey (« PasswordGUID »)")]"