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
Was war die Fehlermeldung der Ausnahme? – juharr
Was ist die InnerException? –
Können Sie das in 'catch (Exception e) ändern {return e.Message + e.stackTrace;}' – Hackerman