Что такое правильный способ использования automapper
с ado.net
в asp.net core
в общем виде? Также запрос Sql имеет те же имена столбцов, что и в классе <T>
В указанном примере переменная result
всегда является пустым списком, поэтому automapper не смог сопоставить свойства объектов с столбцами DbDataReader.ASP.NET CORE с использованием ADO.NET с AutoMapper
public class CustomDbContext : BaseRepository
{
readonly DbConnection dbConn;
public CustomDbContext(RepoDbContext context) : base(context)
{
dbConn = context.Database.GetDbConnection();
}
public async Task<List<T>> Get<T>(string sql) where T : class
{
var config = new AutoMapper.MapperConfiguration(cfg =>
{
cfg.CreateMap<DbDataReader, List<T>>();
});
var mapper = config.CreateMapper();
await dbConn.OpenAsync();
using (var command = dbConn.CreateCommand())
{
command.CommandText = sql;
var reader = await command.ExecuteReaderAsync();
var result = new List<T>();
if (reader.HasRows)
{
await reader.ReadAsync();
result = mapper.Map<DbDataReader, List<T>>(reader);
}
reader.Dispose();
return result;
}
}
}
Должен ли я указать более подробную конфигурацию automapper или это невозможно сделать таким образом?
В этом случае 'mapper.Map> (читатель)' 'возвращает null' –
Brivvirs