Определите названия пользовательских моделей для обратного инжиниринга Scaffold-DbContext - PullRequest
0 голосов
/ 19 сентября 2019

Я использую Scaffold-DbContext для обратного проектирования существующей базы данных.Я указываю свой пользовательский ContextDir, Context и имя папки для сущностей.Я также использую -DataAnnotations.Вот команда, которую я использую:

Scaffold-DbContext "{connection_string}" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Entities -ContextDir DbContexts -Context TestContext -Tables "tableA", "tableB", "tableC" -DataAnnotations -Force

Она работает хорошо, НО .. с точки зрения названий моделей, я ограничен только двумя вариантами:

  1. Использование-UseDatabaseNames flag и Scaffold-DbContext создадут имена таблиц и столбцов в точности так, как они отображаются в базе данных (поэтому в моем примере это «tableA»).
  2. Ommit -UseDatabaseNames flag, и имена баз данных будут изменены наболее точно соответствовать соглашениям стиля имен C # (в моем примере это «TableA»).

Что я ищу? Я ищу третий вариант.Я хотел бы иметь возможность явно назвать их, один за другим.Например:

-Tables "tableA" as "CustomTableA", "tableB" as "CustomTableB"

Зачем мне это нужно?Вот проблема: (сценарий: в будущем База данных будет изменена и появятся 4 новые таблицы, которые я хочу включить в свои модели):

Когда я переименую одну для моделей (после неебыл обратно спроектирован из db) сегодня, а завтра я снова буду запускать Scaffold-DbContext, чтобы добавить новые таблицы .. измененная модель все еще там.Есть много работы, чтобы сделать это.Поэтому после первых строительных лесов я вынужден вручную добавлять модели в мой код.Возможность явно сказать, какие имена следует использовать, была бы очень полезна для больших корпоративных корпоративных проектов баз данных.

Есть ли такая опция в Scaffold-DbContext?Если нет, есть ли план добавить его?Если нет, есть ли другой инструмент с такой функциональностью?

Кстати.Кроме того, пользовательские имена столбцов / полей в этих моделях тоже будут потрясающими

...