Aşağıdaki değerleri gerçek bir DateTime nesnesine dönüştürmek için automapper'ı kullanmaya çalışıyorum. Çalışmayı başaramıyorum, yanlış yaptığım bir şey var mı? Herhangi bir yardım çok Örnek kadarBir numarayı bir DateTime nesnesine dönüştürmek için automapper kullanarak
_mapperConfiguration = new MapperConfiguration(c => {
c.CreateMap<DataObject, DomainObject>()
.ForMember(dest => dest.DateTime, opt => opt.MapFrom(src => new DateTime(dest.SubString(0,4), dest.SubString(5,2), 1);
});
AutoMapper ile
201503
201504
201505
class DataObject
{
public int DateTime { get; set; }
}
class DomainObject
{
public DateTime DateTime { get; set; }
}
aşağıda Nesneler
girişimleri değerleri
takdir
Derleyici hata
compiler error actually, I get the following Severity Code Description Project File Line Suppression State Error CS0103 The name 'dest' does not exist in the current context..
İkinci girişimi
.ForMember(dest => dest.DateTime, opt => opt.MapFrom(src => new DateTime(src.Date.ToString().SubString(0, 4), src.Date.ToString().SubString(5, 2), 1)));
Üçüncü girişimi
.ForMember(dest => dest.DateTime, opt => opt.MapFrom(src => new DateTime(Convert.ToInt32(src.Date.ToString().Substring(0, 4)), Convert.ToInt32(src.Date.ToString().Substring(5, 2)), 1)));
Çözüm
Maalesef çalışmakta olan automapper kodu kapanmak için aşağıda gösterilse de, asıl sorun olan kötü veri alıyordum. senin automapper .ForMember
Görüşmede
.ForMember(dest => dest.DateTime, dest => dest.MapFrom(src => DateTime.ParseExact(src.DateTime.ToString(), "yyyyMM", CultureInfo.InvariantCulture)));
İkinci girişim daha iyi görünüyor - bunun nasıl başarısız olduğunu açıklayabilir misiniz? – Rawling
teşekkürler! - Derler ama bir çalışma zamanı hatası alırım İndeks ve uzunluk dizenin içindeki bir konuma başvurmalıdır. – Jamie
Dizinler Substring için yanlış. Substring (0, 4) ve Substring (4, 2) olmalıdır. – momar