Проблема с собственным типом при миграции с Entity Framework Core 2.0 на 2.1
Мы обновляем наше основное приложение asp.net (которое работает на полной платформе.net) с asp.net 2.0 / ef core 2.0 до asp.net 2.1 / ef core 2.1. Я удивлен, сколько головной боли это для незначительного обновления...
В любом случае, после обновления до 2.1 и добавления миграции без каких-либо изменений кода в модель, EF создает миграцию, чтобы переместить принадлежащий нам тип, который мы используем (единственный), в отдельную таблицу. Зачем? [Документация][1] гласит:
При использовании реляционных баз данных по соглашению принадлежащие типы сопоставляются с той же таблицей, что и владелец.
Мы можем решить эту проблему, добавив ToTable() и передав имя родительского объекта, но мы не понимаем, почему это требуется в первую очередь.
До:
builder.Entity<Chart>().OwnsOne(c => c.BarLineOptions);
После:
builder.Entity<Chart>().OwnsOne(c => c.BarLineOptions).ToTable("Chart");
Мы также попытались удалить эту свободную конфигурацию с новым OwnedAttribute, но это вызывает ту же проблему, поэтому нам действительно нужен свободный конфигурационный файл для вызова ToTable()
Обновление: если мы не создаем миграцию, мы получаем исключение при запуске приложения, говоря, что таблица BarLineOptions не существует