Обновление с Npgsql.EntityFrameworkCore.PostgreSQL 2.0.0 до 2.1.2 Проблема с внешним ключом - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть проект, который я обновил с Npgsql.EntityFrameworkCore.PostgreSQL 2.0.0 до 2.1.2

У меня есть два класса, напрямую ссылающихся друг на друга с помощью виртуальной ссылки.

public class User
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public virtual Account Account { get; set; }
}


public class Account
{
    public string EMailAddress { get; set; }
    public string DisplayName { get; set; }
    public virtual User User { get; set; }
}

И это работало нормально, но после обновления я получаю следующую ошибку:

  • $ exception {System.InvalidOperationException: дочерняя / зависимая сторона не может быть определена для отношения «один к одному» между «User.Account» и «Account.User». Чтобы определить дочернюю / зависимую сторону отношения, настройте свойство внешнего ключа. Если эти переходы не должны быть частью одного и того же отношения, настройте их без указания обратного. Подробнее см. http://go.microsoft.com/fwlink/?LinkId=724062.

Итак, в моем DataContext я установил внешние ключи, добавив

protected override void OnModelCreating(ModelBuilder builder)
   {    
     builder.Entity<User>().HasOne(e => e.Account).WithOne(e => e.User).HasForeignKey<Account>(e => e.Id).OnDelete(DeleteBehavior.SetNull);
     base.OnModelCreating(builder);
}

Это позволяет программе компилироваться и запускаться, но всякий раз, когда я ссылаюсь на Пользователя, Учетная запись равна нулю и наоборот. Я не уверен, почему мне нужно явно отображать свой внешний ключ сейчас, так как он не был необходим перед обновлением, или даже знаю, чтобы заставить его работать должным образом сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...