title: Entity Framework "source" table approach
body: <p>I think it's a trivial problem but wanted to ask you about clean solution for it.</p>
  
  <p>This time I have a table <code>Cards</code> in my database already filled with a couple thousand rows. I want to treat this table as read-only source of data with all possible items that user can store in his collection.</p>
  
  <p>When I create migration for this models, it keeps adding a <code>CollectionsId</code> column to the <code>Cards</code> table, which I totally understand but this is something that I would like to avoid. </p>
  
  <p>My question is: should I create additional class for cards like <code>UserCard</code> and use it for storing in collection? If so then it creates a problem because it's forcing me to validate <code>UserCard</code> with <code>Card</code> if its valid or not. Should it be stored in separate context? What's is the best approach for this kind of problem?</p>
  
  <pre><code>abstract class Entity
  {
      public int Id { get; set; }
  }
  
  class Card : Entity
  {
      public string Name { get; set; }
      public string Set { get; set; }
  }
  
  class User : Entity
  {
      public string Name { get; set; }
      public List&lt;Collection&gt; Collections { get; set; }
  }
  
  class Collection : Entity
  {
      public User User { get; set; }
      public string Name { get; set; }
      public List&lt;Card&gt; Cards { get; set ;}
  }
  </code></pre>