title: Change column name in asp.net identity
body: <p>I've declared a class to create new table <code>Topics</code>:</p>
  
  <pre><code>Table["Topics"]
  public class TopicViewModels
  {
      [Key]
      public string Id { get; set; }
      public string UserId { get; set; }
      public string Content { get; set; }
      public DateTime DateTime { get; set; }
  }
  </code></pre>
  
  <p>I update the database successful and add some rows to the table. Now, I want to change column <code>Id</code> to <code>TopicId</code> without losing data, how can I do that?</p>
  
  <p>I've tried: Right click table <code>Topics</code>, then click <code>Open Table Definition</code>, change the name <code>Id</code> to <code>TopicId</code> and update it.</p>
  
  <p>That's okay. But the problem is: how to rename property <code>Id</code> in class <code>TopicViewModels</code> to <code>TopicId</code>?</p>
  
  <pre><code>using (var db = new MyDbContext())
  {
      string id = "";
      var topic = db.Topics.SingleOrDefault(x =&gt; x.Id == id);
  
      // what I want to achieve:
  
      string topicId = "";
      var _topic = db.Topics.SingleOrDefault(x =&gt; x.TopicId == topicId);
  
  }
  </code></pre>
  
  <p>If I change to:</p>
  
  <pre><code>Table["Topics"]
  public class TopicViewModels
  {
      [Key]
      public string TopicId { get; set; }
      public string UserId { get; set; }
      public string Content { get; set; }
      public DateTime DateTime { get; set; }
  }
  </code></pre>
  
  <p>the data would be lost. That's similar to: delete column <code>Id</code> and add new column <code>TopicId</code>.</p>
  
  <p>So, my question: how can I rename some property in class <code>TopicViewModels</code> without losing data?</p>