PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Como retornar tipos de tabela personalizados do Npgsql e procedimentos armazenados?


Parece que eu percebi. Acabou sendo mais fácil do que eu pensava. Tudo o que eu precisava mudar era a maneira como o procedimento armazenado era chamado 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;
    }
}

Eu preferi a outra maneira de invocar o procedimento armazenado, mas pelo menos isso funciona!