Исключить сгенерированный код из Scaffolded DbContext из результатов метрик кода - PullRequest
0 голосов
/ 20 сентября 2019

Я работаю над asp.net core 2.2 web api project.У меня есть отдельная библиотека классов с именем MyProject.Db , которую я создал в контексте базы данных из существующей базы данных.MyProjDbContext содержит автоматически сгенерированный метод, который называется

protected override void OnModelCreating(ModelBuilder modelBuilder) 

. После некоторого кодирования мне пришлось провести некоторый анализ кода, поэтому в сообществе Visual Studio 2019 я запускал метрики кода из меню Анализировать -> РассчитатьМетрики кода -> Для MyProject.Db.

Результаты метрики кода показали очень низкий индекс ремонтопригодности для конкретного метода и снизили общий процент.

The low maintainability index

Поскольку это автоматически сгенерированный код, я хочу исключить его из анализа.

Я прочитал некоторую документацию Microsoft относительно настраиваемой конфигурации, например здесь и здесь но они относятся в основном к юнит-тестам, и они мне мало чем помогли.

Я также попробовал 2 представленных решения здесь , но ни одно из них не помогло.

  1. Я попытался использовать атрибут [ExcludeFromCodeCoverage], но он не дал никакого эффекта.
  2. Я создал собственный атрибут [ExcludeFromCodeCoverage] и добавил его в файл runsettings.Но я запутался в том, где я буду использовать его через юнит-тесты.

РЕДАКТИРОВАТЬ

В соответствии с этим здесь ,даже если это кажется старым, если мы добавим атрибут GeneratedCode в класс / метод, это исключит код из метрик кода.Таким образом, формат выглядит следующим образом:

        [GeneratedCode("Microsoft.EntityFrameworkCore.Tools", "2.2.4")]        
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
                //Scaffolded models here
        }

Как оказалось, это еще одна неудачная попытка.Метод не был опущен в метриках кода.

Есть ли способ исключить метод / класс из библиотеки классов для этого типа анализа кода?

...