Do tnet core 3.1 версия RelationalMetadataExtensions.Relations () - PullRequest
3 голосов
/ 06 января 2020

Мы читаем метаданные спецификаций реляционной базы данных c, используя RelationalMetadataExtensions в do tnet core 2.0. Мы запланировали обновить приложение до 3.0. Но RelationalMetadataExtensions является обязательным в do tnet core 3.0. Каким будет поведение do tnet core 3.1 следующего кода

  // Following code only working for mysql.
        var items = _context.Model.GetEntityTypes();
        foreach (var item in items)
        {
            //RelationalMetadataExtensions.Relational([NotNullAttribute] this IEntityType entityType)
            if (item.Relational() is RelationalEntityTypeAnnotations extensions)
            {
                extensions.Schema = database;
            }
        }

1 Ответ

3 голосов
/ 06 января 2020

На основании журнала обновлений ваш код не будет работать. Вам нужно будет использовать выровненные версии.

К сожалению, проблема 214 , похоже, все еще остается открытой. Я вижу, что GetSchema уже реализована, но SetSchema не найдена. Вы можете поднять новый запрос GitHub, чтобы увидеть, когда (если) он туда попал

Редактировать

Здесь есть проверка SetSchema . Престижность Ивану Стоеву.

Спецификатор провайдера c Изменения API метаданных

Ошибка отслеживания # 214

Новое поведение

Поставщик- Определенные c методы расширения будут сглажены:

IProperty.Relational().ColumnName -> IProperty.GetColumnName() IEntityType.SqlServer().IsMemoryOptimized -> IEntityType.IsMemoryOptimized() PropertyBuilder.UseSqlServerIdentityColumn() -> PropertyBuilder.UseIdentityColumn()

Почему

Это изменение упрощает реализацию из вышеупомянутых методов расширения.

Смягчения

Используйте новые методы расширения.

...