2017-08-31 3 views
2

ich zwei Projekte in meiner Lösung haben:Entity Framework erstellt eine Datenbank mit einem falschen Namen

  • Eine ASP.NET Web API Projekt mit EF
  • Eine Konsolenanwendung mit EF

Beide Projekte sind so konfiguriert, dass sie sich mit SQL Server verbinden und die gleiche Verbindungszeichenfolge haben, die in der folgenden Tabelle definiert ist:

<add name="AppContext" 
    providerName="System.Data.SqlClient" 
    connectionString="Data Source=localhost\SQLEXPRESS;Database=XYZAC;Integrated Security=True" /> 

Das Problem tritt nur mit der Konsolenanwendung auf. Die Web-App erstellt die XYZAC-Datenbank korrekt. Die Konsolen-App erstellt jedoch eine Datenbank mit dem Namen in den Zeilen Namespace.AppContext, die überhaupt nicht das ist, was ich brauche. Aus diesem Grund gibt es keine Kommunikation zwischen diesen Projekten.

Ich habe versucht, Database= zu Initial Catalog= in der Verbindungszeichenfolge der Konsole App ändern, aber es hat nichts geändert.

Was kann die Ursache dafür sein? Kann dies passieren, weil sich die API über IIS APPPOOL\XYZAC Benutzer und die App über WINSRV\Administrator anmeldet? Scheint unwahrscheinlich, weil beide ziemlich die gleichen Berechtigungsgruppen und Zugang zu allem haben, aber ich bin nicht sicher, was sonst die Ursache sein kann.

Was mache ich hier falsch?

Bearbeiten: Ich teile die DB-Modelle zwischen diesen beiden Projekten. Ich werde versuchen, die Verbindungszeichenfolge in den Konstruktor zu schreiben.

+0

Überprüfen Sie Ihren 'DbContext'-Konstruktor. Ich schätze, Sie sagen ihm nicht, die Verbindungszeichenfolge von .config zu verwenden. –

+3

Auch Konsolen-App verwendet nicht web.config. Es verwendet Ihre.app.name.exe.cofig Datei. –

+0

Sie müssen 'app.config' für Ihre Konsolenanwendung hinzufügen. –

Antwort

0

Hart-Codierung die gleiche Zeichenfolge wie diese das Problem gelöst:

public AppContext() : base("Sql n stuff;XYZAC") 

kühlen. Solange es funktioniert, oder?

0

Testen Sie das Gerüst von der erstellten xyz-Datenbank zur Konsolenanwendung und sehen Sie, ob es sich mit dem gerüsteten Kontext verbindet.

Verwandte Themen