EF Core API удалены, теперь, как удалить автоматическое множественное число? - PullRequest
0 голосов
/ 20 июня 2019

(Это не обман, пожалуйста, прочитайте мой комментарий.)

Я только что перешел с EF Core Preview 5 на Preview 6. Это, кажется, серьезное изменение, особенно отображение прервется насуществующие базы данных, если они остаются в версии выпуска.

В предварительном просмотре 5 я использовал:

entityType.Relational.TableName = entityType.DisplayName();

Теперь кажется, что свойство Relational было удалено.Я бы не стал вручную объявлять TableName для всех десятков сущностей, а просто поручил построителю моделей EF Core не выполнять их автоматическое множественное число.

1 Ответ

1 голос
/ 20 июня 2019

В EF Core 3, начиная с предварительного просмотра6, вносятся изменения в API метаданных для конкретного поставщика . Это включает в себя удаление RelationalMetadataExtensions вместе с методами расширения, такими как Relational(this IMutableEntityType entityType).

Он заменяется на RelationalEntityTypeExtensions, где вы можете сделать следующее:

IMutableEntityType entity = ...;
entity.SetTableName(entity.DisplayName());

С этим можно удалить автоматическое множественное число, как описано в в этом ответе на связанный вопрос

using Microsoft.EntityFrameworkCore.Metadata;

public static class ModelBuilderExtensions 
{
    public static void RemovePluralizingTableNameConvention(this ModelBuilder modelBuilder)
    {
        foreach (IMutableEntityType entity in modelBuilder.Model.GetEntityTypes())
        {
            entity.SetTableName(entity.DisplayName());
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...