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