Я уже опробовал 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
.