Мы обновляем наше основное приложение 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 не существует