Я использую automapper v4.1.1 и automapper.data1.0.0.beta 1. У меня есть консольное приложение, и мой код сопоставления выглядит так:
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;
Когда я запускаю этот код, я получаю сообщение об ошибке:
Необработанное исключение: System.InvalidCastException: указанное приведение недопустимо. в DynamicCreate(IDaRecord) в AutoMapper.Data.DataReaderMapper.d__10.MoveNext() в источнике System.Linq.Enumerable.d__94
1.MoveNext() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable
1)
Любые идеи, что я делаю неправильно?
Ваше здоровье
Исмаил