文章出處
文章列表
有了AutoMapper,就再也不用進行手工一對一的從IDataReader到實體字段的賦值。這篇博文是一個實際案例的記錄。
實體類型定義如下:
public class UploadImage { public int Id { get; set; } public string Src { get; set; } }
Src屬性在數據庫中對應的字段名為ImageUrl。
映射要求:從IDataReader到IEnumerable<UploadImage>,代碼如下:
using (var conn = new SqlConnection(ConnectionStrings.Default)) { using (var command = conn.CreateCommand()) { command.CommandType = System.Data.CommandType.Text; command.CommandText = "..."; await conn.OpenAsync(); using (IDataReader reader = await command.ExecuteReaderAsync()) { return AutoMapper.Mapper.Map<IDataReader, IEnumerable<UploadImage>>(reader); } } }
通過 IMappingExpression.ForMember() 方法配置AutoMapper可以實現這個映射,代碼如下:
AutoMapper.Mapper.CreateMap<IDataReader, UploadImage>() .ForMember(dest => dest.Src, options => options.MapFrom( src => src.GetString(src.GetOrdinal("ImageUrl"))));
【參考資料】
文章列表
全站熱搜