2016-06-27 13 views
2

Ich versuche, PostgreSQL als Datenspeicher für die Benutzerauthentifizierung in einem ASP.NET Core 1.0 Visual Studio 2015-Projekt nach der Installation von VS2015 Update 3 und der Core 1.0-Version zu verwenden.TypeLoadException mit PostgreSQL mit ASP.NET Core Identity

Schritte:

  1. Neu erstellen "ASP.NET Core-Web-Anwendung (.NET Framework)" Projekt.

  2. hinzufügen NuGet Pakete "Npgsql" v3.1.4 und "Npgsql.EntityFrameworkCore.PostgreSQL" v1.0.0-RC2-RELEASE1

  3. Ändern ConfigureServices() in Startup.cs wie folgt:

    public void ConfigureServices(IServiceCollection services) 
    { 
        // Add framework services. 
        services.AddEntityFrameworkNpgsql() 
         .AddDbContext<ApplicationDbContext>(options => 
         options.UseNpgsql(Configuration.GetConnectionString("DefaultConnection"))); 
    
        services.AddIdentity<ApplicationUser, IdentityRole>() 
         .AddEntityFrameworkStores<ApplicationDbContext>() 
         .AddDefaultTokenProviders(); 
    
        services.AddMvc(); 
    
        // Add application services. 
        services.AddTransient<IEmailSender, AuthMessageSender>(); 
        services.AddTransient<ISmsSender, AuthMessageSender>(); 
    } 
    
  4. Run
  5. Exception auf Abruf geworfen AddDbContext():

Eine Ausnahme vom Typ ‚System.TypeLoadException‘ aufgetreten in MyApp.exe wurde aber in Benutzercode

Zusätzliche Informationen nicht behandelt: Typ kann nicht ‚Microsoft.Extensions.DependencyInjection.Extensions.ServiceCollectionExtensions‘ laden von Assembly 'Microsoft.Extensions.DependencyInjection.Abstractions, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken = adb9793829ddae60'.

Ich nehme an, das ein Kompatibilitätsproblem ist, dass bald in Npgsql.EntityFrameworkCore.PostgreSQL angesprochen werden, wollte aber um dies zu bestätigen und festzustellen, ob eine Abhilfe verfügbar ist.

Antwort

5

UPDATE:This has been fixed.

Dies ist ein known issue auf GitHub, wird es bald behoben werden.

6/29/2016

FYI 3.1.5 ist out, Targeting .NET Kern RTM. Der EFCore-Provider ist noch nicht , das wird noch ein oder zwei Tage dauern.