У меня возникли некоторые проблемы с заполнением данных, и я смог воспроизвести проблему с очень маленьким приложением.
Учитывая, что у вас есть этот метод заполнения:
protected override void Seed(JunkContext context)
{
context.Junks.AddOrUpdate(x => x.Name,
new Junk()
{
Name = "BANANAS!!",
Item = new JunkItem()
{
Name = "APPLES!!!"
}
}
);
}
когда вы запускаете базу данных обновления в PMC, все объекты успешно создаются. Хорошо.
Но когда вы захотите обновить базу данных, скажите, что ваш начальный метод теперь таков:
protected override void Seed(JunkContext context)
{
context.Junks.AddOrUpdate(x => x.Name,
new Junk()
{
Name = "BANANAS!!",
Item = new JunkItem()
{
Name = "ORANGES!!!"
}
}
);
}
Дочерняя сущность не обновляется. Кажется, единственный способ, которым мы можем повторно заполнить, — это стереть базу данных и повторно заполнить все. Я думаю, что понимаю, почему это не работает так, как я ожидаю, но, возможно, кто-то может указать мне правильное направление, чтобы соответствующим образом обновить этот начальный метод. Я знаю, что могу просто написать context.JunkItems. (...) но похоже, что это превзошло бы всю цель «AddOrUpdate».
Я думаю, мне придется определить «ключи» для каждого дочернего объекта. Пример: «Нежелательная почта» получает x => x.Name, но «JunkItem» в настоящее время должен установить «обновить ключ». Я предполагаю, что проблема в этом, но как мне с этим справиться?