10

Próbuję EF Core po raz pierwszy i zakodowałem bardzo prostą aplikację MVC, aby zmoczyć stopy. Używam metody obsiewania bazy danych znalezionej w UnicornStore project, w której zapisują kod w Startup.cs w celu przeprowadzenia migracji bazy danych, a następnie uruchomienia metody seed.Dlaczego program Visual Studio mówi mi, że muszę odwołać się do System.Private.CoreLib?

Przed nazywają metodę nasion, biegną tej metody DbContext przedłużacza aby sprawdzić, czy wszystkie migracje zostały zastosowane:

using System; 
using System.Linq; 
using Microsoft.EntityFrameworkCore; 
using Microsoft.EntityFrameworkCore.Infrastructure; 
using Microsoft.EntityFrameworkCore.Migrations; 

namespace UnicornStore.Models 
{ 
    public static class DbContextExtensions 
    { 
     public static bool AllMigrationsApplied(this DbContext context) 
     { 
      var applied = context.GetService<IHistoryRepository>() 
       .GetAppliedMigrations() 
       .Select(m => m.MigrationId); 

      var total = context.GetService<IMigrationsAssembly>() 
       .Migrations 
       .Select(m => m.Key); 

      return !total.Except(applied).Any(); 
     } 
    } 
} 

mam umieścić ten sam sposób w mojej aplikacji i wszystko działa - kod kompiluje i baza danych jest migrowana i inicjowana. Jednakże Visual Studio (2017 Enterprise) jest czerwone podkreślenie ta linia:

context.GetService<IMigrationsAssembly>() 
        .Migrations 
        .Select(m => m.Key); 

Gdybym najechaniu na czerwonej linii, mówi mi:

sekcji „System.Private.CoreLib, Version = 4,0 .0.0, Culture = neutral, TokenKluczaPublicznego = foo”powinny zostać odniesione

Czy ktoś może mi powiedzieć, dlaczego ja dostaję tę wiadomość? Naprawdę próbowałem dodać odniesienie do System.Private.CoreLib, aby zobaczyć, co się stanie, a to spowodowało mnóstwo błędów (undefined System.Object, itp.). Nigdy nie czuję się komfortowo, pozostawiając takie rzeczy nierozwiązane na wypadek, gdyby wróciły, by ugryźć mnie później, więc każda rozdzielczość (lub potwierdzenie, że mogę to zostawić i zignorować wiadomość) byłaby doceniona!

Odpowiedz

13

Czy masz zainstalowane R #? Być może natknąłeś się na ten problem: RSRP-464676

Jeśli tak, spróbuj zawiesić R # i sprawdzić, czy problemy nie są już wyświetlane.

+0

Dzięki za to! To chyba załatwiło sprawę! – Jim

0

Podobnie jak alternatywna odpowiedź, wydaje mi się, że mój niezadowolony spam o wartości alt-enter skłonił mnie do zaimportowania odwołania do zestawu do System.Private.CoreLib, co moim zdaniem wynikało z poprawki importu przestrzeni wątków. Sprawdź, czy zostało to odniesione.

0

Miałem ten sam problem. Aktualizacja do najnowszej wersji programu Resharper rozwiązała problem.

Powiązane problemy