Home > Net >  Convert DbDataReader value to generic List<T>
Convert DbDataReader value to generic List<T>

Time:02-10

I'm still getting into asp.net mvc and encountered this issue while using DbDataReader to execute SQL Read command. Even though the data is fetched from db I can't figure out how to convert it into a generic list.

The code as follows

private static ConnectionStringSettingsCollection _connectionString;
private DbContext _dbContext;
private DbCommand _dbCommand;

protected List<T> GetList<T>(){
       try
            {
                using (var reader = Execute())
                {
                    // How to convert reader to a List<T> ?
                }
            }
       finally
            {
                if (_dbCommand.Connection.State == ConnectionState.Open)
                {
                    _dbCommand.Connection.Close();
                }
            }
}

And the DbDataReader method goes as following

protected DbDataReader Execute()
        {
            if (_dbCommand.Connection.State != ConnectionState.Open)
                _dbCommand.Connection.Open();

            return _dbCommand.ExecuteReader();
        }

Edit: I'm using stored procedures to perform SQL Queries.

CodePudding user response:

you could use Dapper:

var parameters = new DynamicParameters();
parameters.Add("@u", ApiConstans.DefaultDbUserId);

using (IDbConnection db = new SqlConnection(_connectionString))
{
    return db.Query<Kadr>("exec dbo.usp_Kadry_Kadr_list @ShowDel = 0, @U = @u", parameters).ToList();
}
  •  Tags:  
  • Related