Wątek przeniesiony 2018-08-16 13:56 z C# i .NET przez somekind.

Dodanie wartości do wirtualnej kolekcji

0

Witam, mam taki problem otóż mam wirtualną kolekcję

public virtual ICollection<ProduktMagazyn> Ilosc { get; set; }

Teraz w innej klasie chce wypełnić pola i przypisać zmienną z palca, ale nie mogę przekonwertować int'a na kolekcję typu ProduktMagazyn. Kolekcji też nie stworzę bo jest wirtualna i nie mogę jej instancji tworzyć. Jak mogę dodać wartości do tej kolekcji?

Produkt pierwszyProd = new Produkt()
{
    Id = 1,
    Ilosc = 2, // <------ błąd
};

Pewnie problem trywialny ale już mam wodogłowie

#Edit
Ogólnie robię testy, i właśnie w teście potrzebuje tego użyć, jakby to coś zmieniało

0

A tak nie możesz?

var p = new Produkt
{
    Id = 1,
    Ilosc = new[] { new ProduktMagazyn() }
};
0

Dalej mi jakieś błędy wyskakują, jak tu dodać w ogóle konkretną wartość?

0

Jakie "testy", jak to się nie kompiluje. A się nie kompiluje nie z kaprysu, tylko z głębokich względów - które sam zaprojektowałeś. Kolekcja to nie integer.
W popularnych obrazach: nawet nie gruszka, ale pies - pies to nie jabłko. Sądzisz, że pies jest formą jabłka?

ps. "kolekcja wirtualna" i jakoby niemożność, tu też się nie rozumiemy.

0
pavarotti napisał(a):

Dalej mi jakieś błędy wyskakują, jak tu dodać w ogóle konkretną wartość?

To może pokaż te błędy, a najlepiej pokaż szerszy kontekst kodu, bo my tu nie wróżki, kryształowych kul nie mamy.

0
pavarotti napisał(a):

Dalej mi jakieś błędy wyskakują...

wróć jak zrozumiesz, że błędy należy czytać, i można (najczęsciej tzreba) je tu napisać.

0

W sumie racja, sorrki. Screeny:

stanmagaz.png

stanmagaz2.png

I samo pole Quantity w klasie Product:

quantity.PNG

0

Tutaj: https://4programmers.net/Forum/Download/19952 nie podajesz typu dla Quantity po new, więc kompilator myśli, że chcesz utworzyć typ anonimowy, ale dalsza składnia składnia jest nieprawidłowa.

Czemu wklejasz screeny zamiast kodu?

0
somekind napisał(a):

Tutaj: https://4programmers.net/Forum/Download/19952 nie podajesz typu dla Quantity po new, więc kompilator myśli, że chcesz utworzyć typ anonimowy, ale dalsza składnia składnia jest nieprawidłowa.

Czemu wklejasz screeny zamiast kodu?

Wtedy na szybko pisałem bo chciałem za wszelką cenę to ogarnąć, bo wiedziałem że zaraz uciekam i mnie nie będzie.
Screeny zamiast kodu? dobre pytanie, będę pamiętał na przyszłość.
Czyli wyglądało by to:

BaseProd.Product firstProductItem = new BaseProd.Product ()
{
    ErpId = 1,
    Quantity = new { >?< }
}

Naprawdę nie mam pojęcia jak dodać do tej kolekcji jakąś wartość. Normanie zrobiłbym tak

ICollection<ProductWarehouseQuantity> quantities = new ICollection<ProductWarehouseQuantity>();

quantities.Add(coś tam);

BaseProd.Product firstProductItem = new BaseProd.Product ()
{
    ErpId = 1,
    Quantity = quantities[0]
}

Tylko problem jest w tym że jest to pole wirtualne i nie mogę tworzyć obiektu. Już mam dziurę w głowie

1

A co tworzenie obiektu ma do pola wirtualnego?!
Skoro wiesz, że trzeba napisać tak: ICollection<ProductWarehouseQuantity> quantities = new ICollection<ProductWarehouseQuantity>();, to czemu tutaj: Quantity = new { >?< } piszesz jakieś nawiasy po new zamiast podać typ?

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0