Problemy konfiguracyjne występują w projektach za często i są strasznie uciążliwe. Dziś napiszę o rozwiązaniu jednego z nich.
Opis problemu
Podczas korzystania z podejścia Code First w Entity Framework korzysta się z paru komend w Package Manager Console. Najpopularniejsze z nich to Add-Migration i Update-Database. Do tej pory, kiedy instalowałem paczkę Entity Framework komendy te były zawsze dostępne. Tym razem było inaczej, konsola zwróciła błąd:
Przygotowanie programu
Ze względu, że wpis na blogu dotyczy pewnego problemu wstawię kod bez większego wyjaśnienia. Zainstalowane paczki projektu dla EF Core:
Kod służący do stworzenie tabeli bazy danych:
class Detective { public int Id { get; set; } public string Name { get; set; } } class ProgramDbContext:DbContext { public DbSet<Detective> Detectives{ get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(@"Server=(localdb)\mssqllocaldb;Database=MyDatabase;Trusted_Connection=True;"); } }
Rozwiązanie
Aby możliwe było korzystanie z instrukcji dostarczonych przez Entity Framwork Core w konsoli należy zainstalować jeszcze jedną paczkę Nuget:
Dzięki niej możliwe jest użycie komendy Add-Migration oraz Update-Database:
Dlaczego wcześniej nie miałem takiego problemu
Problem nie występuje, gdy korzysta się z projektu ASP.NET Core, ponieważ szablon ma już w sobie zainstalowane domyślnie paczki związane z EF.Core. Oto one:
Jest już wśród nich Microsoft.EntityFrameworkCore.Tools, która jest sprawcą całego zamieszania.
Wcześniej, gdy robiłem coś w konsoli wykorzystywałem platformę .NET (nie Core), a tam nie było takiego problemu.