PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment renvoyer des types de table personnalisés à partir de Npgsql et des procédures stockées ?

On dirait que j'ai compris. S'est avéré plus facile que je ne le pensais. Tout ce que j'avais à changer était la façon dont la procédure stockée était appelée à partir de C#.

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;
    }
}

J'ai préféré l'autre façon d'invoquer la procédure stockée, mais au moins ça marche !