Eşleştirilen iki sınıf var. Kaynak sınıfı, long
(DateTime.Ticks
) türünde bir hedef özelliğine eşlenen DateTime
özelliğine sahiptir, bunlar sırasıyla UpdateDt
ve UpdateDtTicks
'dur. Automapper eşleme özelliği beklenmedik şekilde kısmi özellik adı eşleşmesi eşleşmesi
Ben Automapper özellik adları aynı değildir ve açıkça bu özellik için eşleme ayarlanmış yapmamış olsanız bile, benim UpdateDtTicks
özellik otomatik UpdateDt
özelliğinden değerini alır, bu iki sınıfları eşleştirmek için kullanın
Otomatik eşleyici, özellik adlarının yalnızca özellik sonundan farklı olması nedeniyle otomatik olarak ayarlanıyor mu? Değilse neden bu beklenmedik davranış olarak oluyor.
bakınız aşağıda kodu:
static void Main(string[] args)
{
Configuration.Configure();
var person = new OrderDto
{
OrderId = 999,
MyDate = new DateTime(2015, 1, 1, 4, 5, 6)
};
var orderModel = Mapper.Map<OrderModel>(person);
Console.WriteLine(new DateTime(orderModel.MyDateTicks.Value));
Console.ReadLine();
}
public class OrderDto
{
public int OrderId { get; set; }
public DateTime MyDate { get; set; }
}
public class OrderModel
{
public int OrderId { get; set; }
public long? MyDateTicks { get; set; }
}
public class Configuration
{
public static void Configure()
{
Mapper.CreateMap<OrderDto, OrderModel>();
}
}
konsolunda sonucu:
Ve bir saat:
Benim tahminim o automapper hedef nesnesi MyDate' 'arar aynı ... Bir
long
gerektiğinde dönerMyDate.Ticks
, eşleştirmeMyDateTicks
olarak,' Keneler ile 'MyDate' bulur Postfix ve MyDate.Ticks 'mantıklı eğer çalışır. Bu durumda, bu tamamen geçerli bir ifadedir. Dokümantasyonda bu özelliği arıyorum ama bu neler oluyor gibi görünüyor. Örneğin, 'MyDateTiicks' için yeniden adlandırmayı denediniz mi? – MarioDSSadece MyDateTiicks'i denedim ve haritalanmadı. Ayrıca MyDatesTicks'i denedim ve aynı zamanda haritalanmadı. Yani özellik isminin bir kombinasyonu gibi görünüyor ve 'Ticks' özelliği adı. –