title: SaveChangesAsync not saving a specific value when it's assigned
body: <p>I've ran into an issue I can't quite seem to figure out. Here I have a ticket item which is assigned to user. I have implemented a feature to be able to change the user. The user is changed and updated correctly however, the <code>UserID</code> value for the ticket remains unchanged despite being reassigned and <code>SaveChangesAsync</code> being called to confirm these changes. <code>.AssignedUser</code> is changed in the database and saved however, the <code>UserID</code> refuses to update in the db. None of the values are null and when setting a breakpoint and running through the function it all seems to assign itself correctly with the correct values. The value <code>UserID</code> just does not save or update. Would appreciate any insight into this. Thanks in advance</p>
  <h2>Ticket model</h2>
  <pre><code>public class Ticket
  {
      [Key]
      public Guid Id { get; set; }
      
      [Required]
      public string Title { get; set; }
  
      public Guid UserID { get; set; } //who the ticket is assigned to
  
      public Guid CreatedByUser { get; set; } //who this ticket is created by
  
      public ApplicationUser CreatedBy { get; set; } //created by user
      
      public ApplicationUser AssignedUser { get; set; } // who the ticket is assigned to
  
  }
  </code></pre>
  <h2>Razor page</h2>
  <pre><code>[Parameter] public Guid Id { get; set; }
  private Ticket ticketItem { get; set; } = new Ticket();
  private ApplicationUser AssignUser { get; set; } = new ApplicationUser();
  
  private async Task ChangeUser()
  {
  
  try
  {
      var response = await Http.PutAsJsonAsync($&quot;Tickets/changeuser/{AssignUser.UserName}/{ticketItem.Id}&quot;, AssignUser);
  
  } catch(Exception) { ... }
  
  }
  </code></pre>
  <h2>Controller making the changes</h2>
  <pre><code>    [HttpPut(&quot;changeuser/{username}/{ticketID}&quot;)]
      public async Task&lt;IActionResult&gt; ChangeTicketUser(string username, Guid ticketID)
      {
          ApplicationUser findUser;
          Ticket ticketItem;
          try {
              findUser = await _userManager.Users.FirstAsync(u =&gt; u.Email.Equals(username));
              
          } catch (Exception)
          {
              return Forbid(); //user not found
          }
  
          try
          {
              ticketItem = await _context.Tickets.Where(t =&gt; t.Id.ToString().Equals(ticketID.ToString())).FirstAsync();
          } catch (Exception)
          {
              return BadRequest(); //ticket not found
          }
  
  
          ticketItem.AssignedUser = findUser;
          ticketItem.UserID = Guid.Parse(findUser.Id);
  
          await _context.SaveChangesAsync();
  
          return NoContent();
  
      }
  </code></pre>
  <h2>Values are different and valid</h2>
  <p><a href="https://i.stack.imgur.com/0uPBl.gif" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0uPBl.gif" alt="enter image description here" /></a></p>
  <h2>Requested ApplicationUser Model</h2>
  <pre><code>public class ApplicationUser : IdentityUser
  {
      public string firstName { get; set; }
  
      public string lastName { get; set; }
  
      public DateTime LastAccessed { get; set; }
  }
  </code></pre>