2017-02-23 3 views
0

Ich bin absolut neu in ASP.NET Core. Ich baue ein ASP.NET Core-Web-API-Testprojekt nach der offiziellen Dokumentation. Ich wollte PostgresSQL mit diesem Projekt gründen, damit ich folgendes hat:Einrichten von ASP.NET Core mit PostgresSQL Fehler

Mein Modell:

using Microsoft.EntityFrameworkCore; 
using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 

namespace Api_trial.Models 
{ 
    public class Student 
    { 
     public int Id { get; set; } 
     public string Name { get; set; } 
     public int Grade { get; set; } 

    } 

    public class WebAPIDataContext : DbContext 
    { 
     public WebAPIDataContext(DbContextOptions<WebAPIDataContext> options) 
      : base(options) 
     { 
     } 
     public DbSet<Student> Students { get; set; } 
    } 
} 

appsettings.json:

{ 
    "ConnectionStrings": { 
    "DataAccessPostgreSqlProvider": "User ID=postgres;Password=root;Host=localhost;Port=5432;Database=asp_trial_api;Pooling=true;" 
    }, 
    "Logging": { 
     "IncludeScopes": false, 
     "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
     } 
    } 
    } 

startup.cs:

public void ConfigureServices(IServiceCollection services) 
     { 
      // Add framework services. 
      services.AddApplicationInsightsTelemetry(Configuration); 

      services.AddDbContext<WebAPIDataContext>(options => { 
       options.UseNpgsql(Configuration.GetConnectionString("DataAccessPostgreSqlProvider")); 
      }); 

      services.AddMvc(); 
      services.AddSwaggerGen(); 
     } 

Und mein Projekt.json:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.1", 
     "type": "platform" 
    }, 
    "Microsoft.ApplicationInsights.AspNetCore": "1.0.0", 
    "Microsoft.AspNetCore.Mvc": "1.0.1", 
    "Microsoft.AspNetCore.Routing": "1.0.1", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Logging": "1.0.0", 
    "Microsoft.Extensions.Logging.Console": "1.0.0", 
    "Microsoft.Extensions.Logging.Debug": "1.0.0", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Microsoft.EntityFrameworkCore": "1.0.1", 
    "Microsoft.EntityFrameworkCore.InMemory": "1.0.1", 
    "Swashbuckle": "6.0.0-beta902", 
    "Npgsql.EntityFrameworkCore.PostgreSQL": "1.1.0" 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8" 
     ] 
    } 
    }, 

    "buildOptions": { 
    "emitEntryPoint": true, 
    "preserveCompilationContext": true 
    }, 

    "runtimeOptions": { 
    "configProperties": { 
     "System.GC.Server": true 
    } 
    }, 

    "publishOptions": { 
    "include": [ 
     "wwwroot", 
     "**/*.cshtml", 
     "appsettings.json", 
     "web.config" 
    ] 
    }, 

    "scripts": { 
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] 
    } 

}

Allerdings bekomme ich folgende Fehlermeldung in meinem startup.cs:

enter image description here

I Pakete wiederhergestellt, aber ich bin im Grunde nicht einmal sicher, was es wirklich bedeutet und was muss sein erledigt. Ich habe noch nicht ausgeführt: dotnet ef migration

+0

vielleicht sollten Sie zu Core 1.1 migrieren? – Alexan

+0

In diesem Fall muss ich alles auf 1.1 upgraden, oder? – Nitish

Antwort

2

Wie Sie .NET Core 1.0, nicht .NET Core 1.1 verwenden, Downgrade der Version Npgsql.EntityFrameworkCore.PostgreSQL nugget.

Verwenden Sie "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.2" anstelle von "Npgsql.EntityFrameworkCore.PostgreSQL": "1.1.0" in Ihrem Projekt.json.

+0

Okay, ich werde es jetzt versuchen. Aber ansonsten sind alle anderen Einstellungen korrekt, oder? Verbindungszeichenfolge einrichten und in der Datei startup.cs verwenden und DBContext einrichten. Ich musste einige Tutorials folgen, da es nicht Teil der Web-API-Dokumentation war. – Nitish

+0

@Nitish aktuelle Einrichtung sieht gut aus für mich – Set

+0

Okay vielen Dank! Hoffentlich ein guter Start mit .net Kern :) – Nitish

Verwandte Themen