IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
xpoproci
Člen
Avatar
xpoproci:8.12.2017 13:16

Ahojte, nevedel by mi niekto poradiť ako nakonfigurovať automapper pri cyklickej závislosti?
mám triedy

public class Item : IEntity
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
        public Guid Id { get; set; }
        public string Name { get; set; }
        public int Price { get; set; }
        public ArmorClass ArmorClass { get; set; }
        public Attributes Attributes { get; set; }
        public virtual ICollection<Inventory> Inventories { get; set; }
    }

public class Inventory : IEntity
    {
        [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
        public Guid Id { get; set; }
        public virtual ICollection<Item> Items { get; set; }
        public int MaxSize { get; set; }
    }

a DTO, v BaseDto je iba ID

public class ItemDto : BaseDto
    {
        public string Name { get; set; }
        public int Price { get; set; }
        public virtual ICollection<InventoryDto> Inventories { get; set; }
    }

public class InventoryDto : BaseDto
    {
        public virtual ICollection<ItemDto> Items { get; set; }
        public int MaxSize { get; set; }
        public bool IsFull => Items?.Count() >= MaxSize;
    }
Odpovědět
8.12.2017 13:16
Motto
Avatar
xpoproci
Člen
Avatar
xpoproci:8.12.2017 15:33

vyriešené :D

Nahoru Odpovědět
8.12.2017 15:33
Motto
Avatar
Petr Nymsa
Tvůrce
Avatar
Odpovídá na xpoproci
Petr Nymsa:8.12.2017 17:01

Je vhodne dane reseni sem napsat. Ostatni mohou mit stejny problem.

Nahoru Odpovědět
8.12.2017 17:01
Pokrok nezastavíš, neusni a jdi s ním vpřed
Avatar
xpoproci
Člen
Avatar
xpoproci:9.12.2017 9:51

Pravdou je, že automapper si to už rieši sám a chybu som mal trochu inde. Resp. nemal som nainicializované pole v ItemDto, kód

public class ItemDto : BaseDto
    {
        public string Name { get; set; }
        public int Price { get; set; }
        public ICollection<InventoryDto> Inventories { get; set; }

        //takyto konstruktor, mam vsade, kde sa mapuju kolekcie
        public ItemDto(){
                Inventories = new List<InventoryDto>();
        }
    }

Automapper na mňa kričal kvôli tomu, že nebol schopný namapovať abstraktnú property.

Nahoru Odpovědět
9.12.2017 9:51
Motto
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 4 zpráv z 4.