EF Core 3: создание объекта не выполнено, неправильный порядок создания - PullRequest
0 голосов
/ 28 января 2020

Я пытаюсь добавить новый DbUserInfo2 в мою БД. У него есть дочерняя таблица PostalAddress. По какой-то причине мне нужно установить UserId для DbUserInfo2 вручную.

Это не работает в ef core 3.1, раньше оно работало в ef core 2.2.

Что происходит, так это то, что EF пытается создать новую строку PostalAddress, прежде чем она создаст строку DbUserInfo2. Таким образом, приводя к внешнему ключу.

Есть идеи, что я сделал не так?

public class DbUserInfo2
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int UserId { get; set; }
    public DbPostalAddress2 PostalAddress { get; set; }
}

public class DbPostalAddress2
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int PostalAddressId { get; set; }
    public int UserId { get; set; }
}

void TestInsert(MyDbContext db)
{
    var user = new DbUserInfo2 { UserId = 22, PostalAddress = new DbPostalAddress2() };
    db.Add(user);
    await db.SaveChangesAsync();
}

1 Ответ

0 голосов
/ 29 января 2020

Извините, что беспокою вас. Создание и применение новой миграции после обновления версии библиотеки mysql устранило проблему.

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