Автоматизация интеграции чистой архитектуры: объединение каркасов EF Core, PowerShell и C# Reflection [закрыто]C#

Место общения программистов C#
Anonymous
Автоматизация интеграции чистой архитектуры: объединение каркасов EF Core, PowerShell и C# Reflection [закрыто]

Сообщение Anonymous »

При использовании подхода «сначала база данных» для API C# .NET с использованием шаблона «Чистая архитектура» (CA) ручная интеграция шаблонных моделей EF Core (сущностей и DbContext) в необходимые уровни домена и приложения является утомительной и подверженной ошибкам.
При наличии рабочего процесса оркестрации с несколькими инструментами:
PowerShell → dotnet ef dbcontext scaffold → Пользовательский генератор кода C# → Решение CA
Каковы проверенные технические шаблоны и инструменты, необходимые для достижения следующих целей, и как поддерживается надежность на каждом критическом этапе?
  • Анализ модели: надежное обнаружение сущностей, их первичных ключей и специализированных свойств (например, RecDelete, CreatedBy) из вновь сгенерированных Файлы C# для определения наследования (BaseEntity, BaseAuditableEntity).
  • Контроль за архитектурой: обеспечение размещения сгенерированных объектов на правильном уровне домена/сущностей и правильное наследование базовых классов или интерфейсов платформы.
  • Межинструментальное взаимодействие: безопасная передача необходимых метаданных (например, имен объектов и их форм во множественном числе) из исходного инструмента формирования шаблонов в окончательный вариант. генератор кода.
Мы попытались инициировать решение CA, ориентированное на базу данных, выполнив следующие действия вручную:
  • Скаффолдинг: мы выполнили стандартную команду CLI EF Core для создания моделей и класса DbContext, ориентированного на временный или выделенный проект данных:
Команда для создания моделей из SQL Server
dotnet ef dbcontext scaffold "Server=localhost;Database=MyDb;Trusted_Connection=true" Microsoft.EntityFrameworkCore.SqlServer -o Models

Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-powersh

Вернуться в «C#»