I do my query...

var result = from u in tdc.tblUsers
             where u.UserID == userID
             select u;

and then I change the values I want to:

foreach (tblUsers u in result)
{
     //change values (and no im not changing the primary key or foreign keys)
}

then I submit changes

tdc.SubmitChanges();

When it hits submit changes, it throws exception that the row wasn't found or was changed. I am the only person using this so there's no other conflicts with accessing the db or locking. Why would it throw the ChangeConflictException? I have stepped through with debugger and the data persists all the way through the process, including the changes that I'm trying to make.

I have also tried it this way before and got the same error

tblUsers result = (from u in tdc.tblUsers
                   where u.UserID == userID
                   select u).Single();
result.Address = address;
result.Phone = phone;
tdc.SubmitChanges();

It will only ever retrieve 1 record with this query since UserID is the primary key.

I've done this many times and it has worked. Every example I've found is exactly what I have.

Edit
Report