Hirdetés

Új hozzászólás Aktív témák

  • Lacc

    aktív tag

    Hali.

    C#-os automapperhez kernek segitseget, mar van egy meglevo rendszer, es en szeretnem ha a relacioban levo modeleket is tudna az automapper kezelni:

    Location
    public class Location : BaseEntity
    {
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int LocationId { get; set; }
    public string LocationNumber { get; set; }
    public string LocationName { get; set; }
    public string Remark { get; set; }
    [ForeignKey("Language")]
    public int? LanguageId { get; set; }
    public Language Language { get; set; }
    [ForeignKey("Currency")]
    public int? CurrencyId { get; set; }
    public Currency Currency { get; set; }
    public DateTime? Changed { get; set; }

    public Location()
    {
    this.Changed = DateTime.Now;
    }

    LocationDTO
    public class LocationDto
    {
    public int LocationId { get; set; }
    public string LocationNumber { get; set; }
    public string LocationName { get; set; }
    public LocationTypes LocationType;
    public string Remark { get; set; }


    public CurrencyDto Currency { get; set; }
    public LanguageDto Language { get; set; }
    }

    Mapper konfiguracio:
    cfg.CreateMap<CurrencyDto, Currency>(); cfg.CreateMap<Currency, CurrencyDto>();
    cfg.CreateMap<LanguageDto, Language>(); cfg.CreateMap<Language, LanguageDto>();

    cfg.CreateMap<Location, LocationDto>()
    .ForMember(l => l.Language, opts => opts.MapFrom(source => source.Language))
    .ForMember(l => l.Currency, opts => opts.MapFrom(source => source.Currency))
    );
    cfg.CreateMap<LocationDto, Location>();

    En, ha a fenti mappelest hasznalom, akkor mintha egy vegtelen ciklus keletkezne, es kifagy a Visual Studio.
    De igy is egy ido utan a LocationDto.Language propertije null, mikozben a LanugageID-nek van erteke.

    En ha jol sejtem, van ennek egy egyszerubb modja is, meg szertnem ha a mapper a Language property-hez hozzadna a LocationDTO-hoz tartozo Language objektumot.

    Bar az entityben levo ForeignKey dataattribute is erdekes, nem igy kellene annak lennie?

    public int? LanguageId { get; set; }
    [ForeignKey("LanguageId")]
    public Language Language { get; set; }

    [ Szerkesztve ]

Új hozzászólás Aktív témák