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" для каждой таблицы
Я надеюсь, что это поможет кому-то, поскольку это сводило меня с ума.