Obiekt sesji zmienia się, gdy obiekt jest aktualizowany w C #

Mam ten naprawdę dziwny problem i jestem pewien, że brakuje mi tutaj czegoś oczywistego. Mam te dwie linie:

HttpContext.Current.Session[listModelType + "ListModel"] = listModel;
listModel.ProductRows = new Collection<ProductRow>(listModel.ProductRows.Where(r => r.ParentRowId == 0).ToList());

Po wykonaniu drugiej linii aktualizowany jest również obiekt sesji (zgodnie z „Watch” w Visual Studio)

Czego mi tu brakuje?

próbowałem

int i = 0;
HttpContext.Current.Session["i"] = i;
i++;

i HttpContext.Current.Session ["i"] pozostaje 0.

questionAnswers(6)

yourAnswerToTheQuestion