Я использую automapper v4.1.1 и automapper.data1.0.0.beta 1. У меня есть консольное приложение и мое отображение кода выглядит следующим образом:AutoMapper.Data ошибка при отображении
Mapper.Initialize(cfg => {
MapperRegistry.Mappers.Add(new DataReaderMapper {YieldReturnEnabled = true}
);
cfg.CreateMap<IDataRecord, AircraftDetails>();
});
И мой код дб вызова и отображение выглядит
var aircraft=new AircraftDetails();
using (SqlConnection connection =
new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings[_connectionString].ConnectionString))
{
SqlCommand command =
new SqlCommand(storedProcedureAsString, connection);
command.AddInputParameters(new {a=aircraftId});
connection.Open();
SqlDataReader reader = command.ExecuteReader();
if (reader.HasRows)
{
var res = Mapper.Map<IDataReader, IEnumerable<AircraftDetails>>(reader);
aircraft = res.FirstOrDefault();
}
}
return aircraft;
Когда я запускаю этот код я получаю ошибку:
Unhandled Exception: System.InvalidCastException: Specified cast is not valid. at DynamicCreate(IDataRecord) at AutoMapper.Data.DataReaderMapper.d__10.MoveNext() at System.Linq.Enumerable.d__94
1.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable
1 source)
Любые идеи, что я делаю не так?
Приветствия
Исмаил
Hi Кудря, пробовал нет радости. Я только что последовал примеру в test.exe automapper.data, и вот как это делается, см. Https://github.com/AutoMapper/AutoMapper.Data/blob/master/AutoMapper.Data.Tests/DataReaderMapping.cs test When_mapping_a_data_reader_to_a_dto, так что отображение - это IDataRecord, но в map IDataReader имеет смысл, так как чтение на IDataReader дает вам IDataRecord. – Ismail
Хм, а как насчет 'cfg.AddMemberConfiguration(). AddMember();' в вашем разделе конфигурации? –
kudrya
kudrya, не пробовал, что, как я тогда решил использовать что-то еще, поскольку я нажимаю на время, поэтому я пошел с https://github.com/sixeyed/projects/tree/master/Sixeyed.Mapping, который работает. Я могу попытаться вернуться, если я получу время. Большое спасибо за помощь. – Ismail