I am using EF for most of my ORM and data access. Recently I have tries Dapper and started liking it because of its simplicity and small footprint. Here is a list of example;
Using Dapper to fill a dataset;
Dapper
returns a IDataReader
when we use the ExecuteReaderAsync
method. More information on this addition can be found here and here.
Use Nuget package to add Dapper. Add this to your Main class for quick demo;
static IDbConnection dbConn = new SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConnString"].ConnectionString);
Here you go with DataSet example using Dapper;
public async Task<DataSet> GetUserInformationOnUserId(int UserId)
{
var storedprocedure = "usp_getUserInformation";
var param = new DynamicParameters();
param.Add("@userId", UserId);
var list = await SqlMapper.ExecuteReaderAsync(dbConn, storedprocedure, param, commandType: CommandType.StoredProcedure);
var dataset = ConvertDataReaderToDataSet(list);
return dataset;
}
Here is conversion to dataset method;
public DataSet ConvertDataReaderToDataSet(IDataReader data)
{
DataSet ds = new DataSet();
int i = 0;
while (!data.IsClosed)
{
ds.Tables.Add("Table" + (i + 1));
ds.EnforceConstraints = false;
ds.Tables[i].Load(data);
i++;
}
return ds;
}
How to map class names to class properties with dapper
Manually map column name with class properties
Does Dapper supports .NET DataSets