Auto-Mapper-konvertieren von string zu Int

Ich bin erstellen einer einfachen MVC4-Anwendung

Ich habe einen automapper

 Mapper.CreateMap<SourceClass, DestinationClass>()
      .ForMember(dest => dest.IntphoneNo, 
                  opt => opt.MapFrom(src => src.Stringphoneno));

IntphoneNo ist der Datentyp int ( IntphoneNo ist eine variable von meiner Klasse Person)
Quelle Attribut Stringphoneno ist der Datentyp string.

Wenn ich am mapping , erhalte ich folgende Fehlermeldung.

Eine Ausnahme des Typs " AutoMapper.AutoMapperMappingException' ist in AutoMapper.dll wurde aber nicht behandelt werden, in Benutzer-code

Aber wenn ich mich verändert die Dataype von IntphoneNo von int zu string dann mein Programm läuft erfolgreich.

Leider kann ich nicht ändern Sie den Datentyp inmy Modell

Ist theer irgendeiner Weise zu ändern Datatupe im mapping ..
So etwas wie unten

.ForMember(dest => dest.IntphoneNo, 
                  opt => opt.MapFrom(src => src.Int32(Stringphoneno));

Nach einigen Recherchen kam ich einen Schritt weiter ..
Wenn meine StringPhoneNo ist = 123456
dann folgende code arbeitet. Ich brauchen nicht zu analysieren, es zu string

Mapper.CreateMap<SourceClass, DestinationClass>()
      .ForMember(dest => dest.IntphoneNo, 
                  opt => opt.MapFrom(src => src.Stringphoneno));

aber wenn meine StringPhoneNo = 12 3456 ( es ist ein Platz nach 12) dann wird mein code nicht funktioniert.
Gibt es eine Möglichkeit zum trimmen von Leerzeichen in Stringphoneno (Stringphoneno ich bin geting von webservice) in automapper.

Sowas wie unten..

Mapper.CreateMap<SourceClass, DestinationClass>()
      .ForMember(dest => dest.IntphoneNo, 
                  opt => opt.MapFrom(src => src.Trim(Stringphoneno))); 
Ich würde nicht raten, zu speichern phonenumbers(ich nehme an) wie ints, verlieren Sie die internationale/regionale null-Präfix-Nummern. Auch einige zahlen, die sehr lang sein können. (es sei denn, Sie verwenden ein int64) Mit 11 zahlen, Sie haben einige überlauf-Probleme.
Ich kam über die gleiche Art von Beratung an einer Stelle, wenn jemand darauf hingewiesen, dass wir sollten nicht über das Geld, das sql-Typ zu speichern Geld und sollte stattdessen decimal. Ich hatte ein gutes lachen, wenn ich darauf hingewiesen, dass wir arbeiteten in US-Dollar, und wenn wir jemals einen Auftrag, in dem der Kauf tatsächlich größer war, als das Geld zu geben, würde ich die Bestellung per hand, wir waren eine kleine Wein-Unternehmen. Nicht wirklich relevant, nur eine Geschichte, die ich immer mochte.
Faktorovich - Doch die Suche nach einem Internationalen Telefon-Nummer, größer als 10 Ziffer ist wesentlich einfacher als scoring eine Bestellung größer als max Geld-Typ 🙂
Daten Art der Quelle ist nicht in meiner Kontrolle. Ich bin immer Quelle über einen webservice..
Ich bin damit einverstanden, nur eine Geschichte, die ich immer mochte.

InformationsquelleAutor user2739679 | 2013-09-12

Schreibe einen Kommentar