#visual-studio #entity-framework-core #visual-studio-2019 #.net-core-3.1 #pre-build-event
#visual-studio #entity-framework-core #visual-studio-2019 #.net-core-3.1 #предварительная сборка-событие
Вопрос:
Я пытаюсь настроить наш проект на повторное создание каркаса DbContext и всех моделей перед каждой сборкой, чтобы отслеживать любые изменения базы данных в нашем API. Однако, когда я настраиваю команду предварительной сборки и запускаю / создаю проект, он просто порождает кучу задач .NET Host, которые занимают остальную часть моего процессора, и сборка останавливается навсегда. Итак, мне нужно открыть диспетчер задач и отключить Visual Studio 2019.
Я использую VS 2019. Это API .Net Core 3 с ядром EF. Вот пример команды, которую я поместил в предварительную сборку. Он отлично работает в PMC.
dotnet ef dbcontext scaffold "Server=localhostSQLEXPRESS;Database=master;Trusted_Connection=True;" Microsoft.EntityFrameworkCore.SqlServer --output-dir Models --force --context-dir Data --context APIContext
Как мне заставить это работать как событие предварительной сборки?
Комментарии:
1. Это не очень хороший подход, почему бы вместо этого не включить схему базы данных в систему управления версиями?
2. @ErikEJ Почему это не очень хороший подход. И что для меня сделало бы включение схемы в систему управления версиями?
3. Это сначала преобразует код в базу данных, ну, хорошо. Моим главным возражением было бы то, что это добавляет очень дорогостоящий этап сборки, который не требуется в 99% случаев. Кроме того, это сложно сделать в проектах совместной работы, где все работают в филиалах. Даже если бы это было возможно, я бы никогда не стал делать это сам, но, по общему признанию, с академической точки зрения это интересно.
4. Вы знаете, что эти команды внутренне запускают сборку, верно? Поэтому, по-видимому, помещать их в события до / после сборки не очень хорошая идея, поскольку это вызывает эквивалент переполнения стека.