Я использую Scaffold-DbContext
для обратного проектирования существующей базы данных.Я указываю свой пользовательский ContextDir
, Context
и имя папки для сущностей.Я также использую -DataAnnotations
.Вот команда, которую я использую:
Scaffold-DbContext "{connection_string}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -ContextDir DbContexts -Context TestContext -Tables "tableA", "tableB", "tableC" -DataAnnotations -Force
Она работает хорошо, НО .. с точки зрения названий моделей, я ограничен только двумя вариантами:
- Использование
-UseDatabaseNames
flag и Scaffold-DbContext
создадут имена таблиц и столбцов в точности так, как они отображаются в базе данных (поэтому в моем примере это «tableA»). - Ommit
-UseDatabaseNames
flag, и имена баз данных будут изменены наболее точно соответствовать соглашениям стиля имен C # (в моем примере это «TableA»).
Что я ищу? Я ищу третий вариант.Я хотел бы иметь возможность явно назвать их, один за другим.Например:
-Tables "tableA" as "CustomTableA", "tableB" as "CustomTableB"
Зачем мне это нужно?Вот проблема: (сценарий: в будущем База данных будет изменена и появятся 4 новые таблицы, которые я хочу включить в свои модели):
Когда я переименую одну для моделей (после неебыл обратно спроектирован из db) сегодня, а завтра я снова буду запускать Scaffold-DbContext
, чтобы добавить новые таблицы .. измененная модель все еще там.Есть много работы, чтобы сделать это.Поэтому после первых строительных лесов я вынужден вручную добавлять модели в мой код.Возможность явно сказать, какие имена следует использовать, была бы очень полезна для больших корпоративных корпоративных проектов баз данных.
Есть ли такая опция в Scaffold-DbContext
?Если нет, есть ли план добавить его?Если нет, есть ли другой инструмент с такой функциональностью?
Кстати.Кроме того, пользовательские имена столбцов / полей в этих моделях тоже будут потрясающими