Scaffold-DbContext: Underscores устраняет при создании контекста из базы данных postgres в .NetCore

Я использую последнюю версию EFCore с базой данных Postgres, используя подход DB First. При генерации Dbcontext из существующей базы данных Postgres он удаляет подчеркивание ('_') из имени таблицы, а также из имен столбцов.

Структура таблицы базы данных

Сгенерированная структура модели DbContext

Я использую следующую команду для создания DbContext:

Scaffold-DbContext "Server=localhost;Port=5432;User Id=postgres;Password=mypassword;Database=SAMPLE_db;" Npgsql.EntityFrameworkCore.PostgreSQL -o DbModels -Schemas "local_dev"

1 ответ

Как упоминал выше Иван Стоув, используйте аргумент dbcontext scaffold --use-database-names . Это удалит такие элементы, как символы подчеркивания, как из имен таблиц, так и из полей.

Вот пример использования терминала:
dotnet ef dbcontext scaffold "server= имя SQL Server ;user= имя пользователя ;password= пароль ;database= имя базы данных " Microsoft.EntityFrameworkCore.SqlServer -o Models -t имя таблицы 1 -t имя таблицы 2 -t имя таблицы x -f --use-database-names

Примечания
-o Models: папка в вашем решении, в которую вы хотите записать файлы моделей. Он должен уже существовать.
-t Индивидуальная таблица: это удобно, если вы хотите, чтобы модели создавались только для подмножества таблиц. Просто повторите "-t" для каждой таблицы

Я надеюсь, что это поможет кому-то, поскольку это сводило меня с ума.

Другие вопросы по тегам