Как использовать конфигурацию classlib с командой ef core scaffold? - PullRequest
0 голосов
/ 16 марта 2019

Я уже опробовал ef core scaffolding tool и был очень удивлен, что нет простого способа сохранить dev connstring где-нибудь в проекте lib класса и ссылаться на него при генерации модели.

Большинство примеров с жестко закодированной строкой соединения, предоставленной в команде, и это просто ужасно:

dotnet ef dbcontext scaffold 'Server=localhost;Database=xxxxxx;User Id=xxxxxxx;Password=xxxxxxxx;' Microsoft.EntityFrameworkCore.SqlServer -o Data/EF

Кроме того, он продолжает генерировать также OnConfiguring переопределение с жестко закодированной строкой соединения и #warning, от которых я не могу отказаться:

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            if (!optionsBuilder.IsConfigured)
            {
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
                optionsBuilder.UseSqlServer("Server=localhost;Database=xxxxxx;User Id=xxxxxxx;Password=xxxxxxxx;");
            }
        }

Согласно документации, есть способ передать имя строки подключения, но он не работает для проекта classlib.

Я что-то упустил или единственный способ сделать ef dbcontext scaffold в classlib - предоставить жестко закодированную строку соединения?

Большинство примеров указывают на то, что вы должны ссылаться на EF на вашем уровне представления (ядро aspnet) и выполнять там ваши строительные леса / миграции - но я думаю (или я надеюсь, что так), большинство людей в некоторых реальных текстовых приложениях пытаются чтобы изолировать свою инфраструктуру от уровня представления, и они хотят сохранить свой код EF изолированным в некоторых classlib.

...