0

Ich lese Kap. 4 von "Essential Angular für ASP.Net Core MVC" von Adam Freeman. Und ich folge mit dem Versuch, die anfängliche Datenbank für SQL Server in einem Docker-Container auszuführen. „Kein Manifest gefunden für diese SQL Server:Scheint nicht zu sein, meine .Net Core App mit SQL Server in Docker Container zu arbeiten

Hier ist seine ursprüngliche Docker-compose.yml Datei: Ich war immer ein Fehler, etwas zu den Auswirkungen auf

version: "3" 

services: 
    database: 
    image: "microsoft/mssql-server-linux:ctp2 0" 
    ports: 
     - 5100:1433 
    environment: 
     - ACCEPT_EULA=Y 
     - SA_PASSWORD=mySecret123 

Wenn ich versuche, die Anwendung mit dieser Datei auszuführen " Also änderte ich:

image: "microsoft/mssql-server-linux:ctp2 0" 

zu

image: "microsoft/mssql-server-linux:latest" 

und runni ng:

docker-compose up 

scheint zu funktionieren.

Aber jetzt habe ich immer noch:

SqlException: Cannot open database "SportsStore" requested by the login. The login failed. 
Login faild for 'sa' 

Hier ist der Rest des Aufbaus.

appsettings.json

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
     "Microsoft.EntityFrameworkCore": "Information", 
     "Microsoft.AspNetCore.NodeServices": "Information", 
     "Default": "Warning" 
    } 
    }, 
    "Data": { 
    "Products": { 
     "ConnectionString": "Server=localhost,5100;Database=SportsStore;User Id=sa;Password=mySecret123;MultipleActiveResultSets=true" 
    } 
    } 
} 

Datacontext:

using Microsoft.EntityFrameworkCore; 

namespace SportsStore.Models 
{ 
    public class DataContext : DbContext 
    { 
     public DataContext(DbContextOptions<DataContext> opts) 
      : base(opts) { } 

     public DbSet<Product> Products { get; set; } 
     public DbSet<Supplier> Suppliers { get; set; } 
     public DbSet<Rating> Ratings { get; set; } 
    } 
} 

StartUp.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Threading.Tasks; 
using Microsoft.AspNetCore.Builder; 
using Microsoft.AspNetCore.Hosting; 
using Microsoft.Extensions.Configuration; 
using Microsoft.Extensions.DependencyInjection; 
using Microsoft.AspNetCore.SpaServices.Webpack; 
using SportsStore.Models; 
using Microsoft.EntityFrameworkCore; 

namespace SportsStore 
{ 
    public class Startup 
    { 
     public Startup(IConfiguration configuration) 
     { 
      Configuration = configuration; 
     } 

     public IConfiguration Configuration { get; } 

     public void ConfigureServices(IServiceCollection services) 
     { 
      services.AddDbContext<DataContext>(options => 
       options.UseSqlServer(Configuration["Data:Products:ConnectionString"])); 
      services.AddMvc(); 
     } 

     public void Configure(IApplicationBuilder app, IHostingEnvironment env, DataContext context) 
     { 
      app.UseDeveloperExceptionPage(); 
      app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions 
      { 
       HotModuleReplacement = true 
      }); 

      app.UseStaticFiles(); 

      app.UseMvc(routes => 
      { 
       routes.MapRoute(
        name: "default", 
        template: "{controller=Home}/{action=Index}/{id?}"); 
      }); 

      SeedData.SeedDatabase(context); 
     } 
    } 
} 

Sobald alles an seinem Platz ist Ich betreibe:

dotnet ef migrations add Initial 

Dann führt uns das Buch nicht dotnet ef migrations update. Wir nächsten laufen:

docker-compose up 

die DB zu starten. Dann starten Sie die Anwendung und wir sollen die Ergebnisse einiger Seeding sehen.

Aber stattdessen bekomme ich den Login fehlgeschlagen Fehler für 'sa'.

Wer weiß, was hier vor sich geht?

+0

Das [code] (https://github.com/Apress/esntl-angular-for-asp.net-core-mvc) für die Aktualisierung Buch für dich zu verweisen. Stellen Sie nur sicher, dass Sie keine Schritte verpassen. –

+0

Denke nicht, dass mir irgendwelche Schritte fehlen. Aber ich benutze die 2.0 Updates, die er dort aufstellte, anstatt die ursprüngliche Core 1.1 Version. Er ersetzt: context.Database.Migrate mit diesem:.. if (context.Database.GetMigrations() Count()> 0 && context.Database.GetPendingMigrations() Count() == 0 && Kontext. Products.Count() == 0) { – Sam

+0

@Sam Haben Sie das Problem behoben? – Cieja

Antwort

0

Stellt sich heraus, es tut ein

dotnet ef migrations update 

direkt nach

docker-compose up 

und Recht müssen vor der Ausführung der Anwendung der DB und der Aussaat zu generieren.

0

Sie haben zu suchen ist listings in GitHub für Core 2.0

Verwandte Themen