2017-02-24 72 views
0

我想第一次使用ASP.net Core和postgres。我正在關注(http://dotnetthoughts.net/using-postgresql-with-aspnet-core/)此博客文章,以創建我的第一次遷移。我已經在posgresSQL中創建了一個名爲asp_api_test的數據庫。帶有Postgres連接字符串錯誤的EF核心

我的dotnet ef migrations add Initial成功了。然而,當我跑dotnet ef database update我遇到了錯誤Format of the initialization string does not conform to specification starting at index 0

我appsettings.json:

{ 
    "ConnectionStrings": { 
    "DataAccessPostgreSqlProvider": "Host=localhost;Username=postgres;Password=root;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("DataAccessPostgreSqlProvider", b => b.MigrationsAssembly("New_Api")); 
      }); 

      services.AddMvc(); 
     } 

我project.json:

{ 
    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Microsoft.AspNetCore.Mvc": "1.0.0", 
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", 
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", 
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", 
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", 
    "Microsoft.Extensions.Configuration.Json": "1.0.0", 
    "Microsoft.Extensions.Configuration.CommandLine": "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.0", 
    "Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.Tools": { 
     "version": "1.0.0-preview1-final", 
     "imports": [ 
     "portable-net45+win8+dnxcore50", 
     "portable-net45+win8" 
     ] 
    }, 
    "Npgsql.EntityFrameworkCore.PostgreSQL": "1.0.0", 
    "Microsoft.ApplicationInsights.AspNetCore": "2.0.0" 
    }, 

    "tools": { 
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", 
    "Microsoft.EntityFrameworkCore.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%" ] 
    } 
} 

我在做什麼錯?

回答

0

我更新爲以下各項

appsettings.js:

{ 
    "Data": { 
    "DefaultConnection": { 
     "ConnectionString": "Host=localhost;Username={{postgres}};Password={{root}};Database={{asp_trial_api}}" 
    } 
}, 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Default": "Debug", 
     "System": "Information", 
     "Microsoft": "Information" 
    } 
    } 
} 

,並在我的startup.cs:

services.AddDbContext<WebAPIDataContext>(options => { 
       options.UseNpgsql(Configuration["Data:DefaultConnection:ConnectionString"]); 
      });