PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie gebe ich benutzerdefinierte Tabellentypen von Npgsql und gespeicherten Prozeduren zurück?

Sieht aus, als hätte ich es herausgefunden. Stellte sich als einfacher heraus, als ich dachte. Alles, was ich ändern musste, war die Art und Weise, wie die gespeicherte Prozedur von C# aufgerufen wurde.

ApplicationUser user;
using (NpgsqlConnection db = new NpgsqlConnection(this.connectionString))
{
    db.Open();
    using (NpgsqlCommand cmd = new NpgsqlCommand("SELECT find_by_id(@user_id);", db))
    {
        cmd.Parameters.AddWithValue("user_id", userId);
        object result = cmd.ExecuteScalar();
        user = result == DBNull.Value ? null : (ApplicationUser)result;
    }
}

Ich bevorzuge die andere Art, die gespeicherte Prozedur aufzurufen, aber zumindest funktioniert das!