Jag har blivit påtvingad att lära mig använda Repository Pattern, och det verkar ju smidigt på sitt sätt, även om jag är ovan än så länge.
Nu har jag dock kört fast i kombinationen Repository Pattern, ListView när jag försöker uppdatera information. Att hämta och lägga till nytt är inga problem (även om jag fick ge upp ItemInsert och lägga det formuläret bredvid)
Kommer inte ihåg hur ListViewn är uppbyggd nu men kan det inte vara så att den redan är bunden till datat innan ItemUpdating körs?
I så fall måste du hämta din SizeAndPrice på nytt inne i metoden.
Däremot i t.ex. eventet ItemDataBound så går det bra att hämta via e.DataItem.
Men eftersom jag inte kan hämta DataItem så är editItem null, vilket gör att jag inte vet vilken post som ska redigeras. Om editItem är null så är editItem.id också null
Helt rätt!
Du måste hämta ut aktuellt editid från ListViewn.
Jag är helt lost på vilka properties det finns att tillgå men du borde kunna ange Sizeandprice.id som datakey i ListViewn som du sedan hämtar upp i ItemUpdating, typ:
int id = (int)e.Item.nånting;
eller
int id = (int)listProducts.Items[e.ItemIndex].nånting;
Sizeandprice sp = _sizeandprice.First(p => p.id == id);
Mm, det där ser farligt ut.
Jag skulle inte hämta via en OrderBy och ElementAt, du måste kunna få tillbaka det exakta id:t som motsvarar databasen.
Annars är det så där man normalt fyller en klass i ASP.NET Webforms. Vill du ha enklare och smidigare lösningar så är det ASP.NET MVC som gäller (och som jag kan rekommendera).