Mit den Entity Frameworks 'DbConetxt Ich versuche zu prüfen, ob die Datenbank mit der Abfrage unten existiert.EF postgre überprüfen, ob die Datenbank existiert
public async Task<bool> CheckIfExistsAsync(DbContext context)
{
var result = await context.Database.ExecuteSqlCommandAsync("SELECT 1 from pg_database WHERE datname='CPNewDB'");
return result == 1;
}
Das Problem ist, dass das Ergebnis immer -1 ist. Ich verwende postgresql und die Abfrage wird ordnungsgemäß ausgeführt, wenn ich es im Pgadmin UI Query-Tool ausprobiere. Ich habe versucht zu googeln, aber vergeblich. Jede Hilfe wird geschätzt.
Hinweis: Der Kontext hat keinen Datenbanknamen, aber alle anderen Datenbankverbindungsinformationen sind erforderlich.
Haben Sie bereits überprüft, ob 'dbContext.Database.Exists()' in Ihrem Fall funktioniert, bevor Sie mit der Ausführung einiger mehr oder weniger komplizierter Abfragen beginnen? – grek40
Hi @ grek40 Ich kann die Datenbank mit dem Befehl ** ExecuteSqlCommandAsync ** erstellen. aber bevor ich die Datenbank erstellte, wollte ich prüfen, ob sie existiert. Wie ich schon sagte, funktioniert Database.Exists() möglicherweise nicht, da der Kontext keinen Datenbanknamen hat. – Gagan
Wie wäre es mit 'SqlQuery' mit '" SELECT COUNT (*) FROM ... "' anstelle der 'ExecuteSqlCommand'? –
grek40