0
使用automapper
與ado.net
在asp.net core
中的通用方式的正確方法是什麼? 此外,Sql查詢具有與<T>
類中相同的列名稱 在指定的示例變量result
始終爲空列表,因此automapper無法將對象屬性映射到DbDataReader列。使用ADO.NET和AutoMapper的ASP.NET CORE
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>(reader)'returns' null' –
Brivvirs