 <p>Here's your problem:</p> <pre><code>.Where(s =&gt; s.ID == 1).FirstOrDefault(); </code></pre> <p>this will obviously return the same object on each iteration. And I'm guessing that theStat has an ID of 1, which is why it is updated.</p>