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