Wpis z mikrobloga

#aspnet #csharp #programowanie
mam coś takiego:

foreach(OrderItem item in orderdetails.OrderItems)
{
htmlContent += "|";
htmlContent += String.Format(" {0} | {1} | {2} | {3} |",
item.ToyId, item.Toy.ToyName, item.Quantity, item.UnitPrice);
htmlContent += "
";
}

i nie wiem dlaczego mi wywala, że item.Toy.ToyName = null, resztę ładnie pobiera. Nie bijcie, jestem nowy w tej technologi.
  • 11
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@prezydent_wykopu: Twój ORM najwyraźniej nie pobiera zależnych properties.

Musisz zrobić coś w stylu: db.OrderDetails.Include(x => x.OrderItems).ThenInclude(x => x.Toy) ...

Przynajmniej tak to wygląda w EF Core, bo niedawno
  • Odpowiedz
@Kamasetto: jeśli już chcesz grać takiego, to StringBuilder przy mniejszej ilości wywołań nie jest tak efektywny. Sposób w jaki zrobił to OP jest bardziej efektywny - pod spodem kompilator i tak przemieni to w string.concat, który jest najszybszym sposobem łączenia stringów. Zamiast StringBuildera lepiej tutaj użyć interpolacji stringów, które jest dostępne od C# 6.0 - o wiele bardziej przydatne.
  • Odpowiedz