2017-01-10 5 views
-2

Ich verwende EF, um meine Datenbank zu verwalten, und ich habe die Datenbank erfolgreich eingerichtet, meine Migration ausgeführt, die Datenbank aktualisiert und in MSSQL Studio eingecheckt, um zu bestätigen, dass die Datensätze vorhanden sind.Warum sollte die Startmethode richtig funktionieren, aber die Abfragen funktionieren nicht?

Allerdings, wenn ich versuchen, eine Abfrage der DB laufen, die Debug-Fenster druckt

Ausnahme geworfen: 'System.Data.SqlClient.SqlException' in System.Data.dll

bis es scheint, als ob der Anruf irgendwann ausgeht, wird nichts zurückgegeben.

Hier ist meine Abfrage.

public async Task<Feature> GetFeatureById(int id){ 
    try {return await _dbcontext.Features.FirstAsync(m => m.Id == id); } 
    catch (Exception e) {return null;} 
} 

Ich habe auch versucht, diese Variation:

return await (await _dbcontext.Features.AnyAsync(m => m.Id == id) ? 
     _dbcontext.Features.FirstAsync(m => m.Id == id) : 
     Task.Run(() => new Feature())); 

Und diese Variante:

_dbcontext.Features.SqlQuery(
    String.Format("SELECT * FROM [Features] WHERE {0} = Id", id)) 
    .FirstAsync(); 

Edit: Dies ist die Nachricht von der Debug-Konsole, wenn Ich drucke die Ausnahmemeldung aus:

Beim Herstellen einer Verbindung zu SQL Server ist ein netzwerkbezogener oder instanzspezifischer Fehler aufgetreten. Der Server wurde nicht gefunden oder war nicht erreichbar. Stellen Sie sicher, dass der Instanzname korrekt ist und dass SQL Server so konfiguriert ist, dass Remoteverbindungen zugelassen werden.

Welche meine Verwirrung fügt hinzu, da, wie gesagt, verbindet das Projekt in die DB nur gut, wenn ich „Update-Datenbank -StartupProject [Projektname]“

bearbeiten laufen: Dies ist meine Verbindungszeichenfolge in app.config

<add name="Context" connectionString="Data Source=localhost\mssqlserver2008;Initial Catalog=HA_Madmin;Integrated Security=True;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" /> 

Aber wenn ich

_dbcontext.Database.Connection.ConnectionString 
auszudrucken

Ich sehe folgend:

Data Source=.\SQLEXPRESS;Initial Catalog=Context;Integrated Security=True;MultipleActiveResultSets=True 
+0

Was war die Fehlermeldung der Ausnahme? – juharr

+0

Was ist die InnerException? –

+0

Können Sie das in 'catch (Exception e) ändern {return e.Message + e.stackTrace;}' – Hackerman

Antwort

0

stellt sich heraus, das Problem war, weil meine Anwendung mit einer anderen Identität in einem App-Pool wurde ausgeführt, als Verbindung meiner Datenbank der wurde auf.

Verwandte Themen