title: 1 to many relationship isn't resulting in what I'd expect
body: <p>In a scenario where a product can have many categories I'm trying to create this using code-first, I have a Product model which has a collection of Category like so:</p>
  <pre><code>public class Product
  {
      public int Id { get; set; }
  
      public string Name { get; set; }
  
      public ICollection&lt;Category&gt; Categories { get; set; }
  }
  </code></pre>
  <p>My Category looks like:</p>
  <pre><code>public class Category
  {
      public Category(CategoryEnum @enum)
      {
          Id = (int)@enum;
          Name = @enum.ToString();
      }
  
      public Category() { }
  
      [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]
      public int Id { get; set; }
  
      public string Name { get; set; }
  
      public static implicit operator Category(CategoryEnum @enum) =&gt; new Category(@enum);
  
      public static implicit operator CategoryEnum(Category category) =&gt; (CategoryEnum)category.Id;
  
  }
  </code></pre>
  <p>Creating a migration then updating the database doesn't create a new table for this to join the 2 (Product and Category) together. I'd expect a new table with a <code>ProductId</code> and <code>CategoryId</code> but this isn't the case. Instead, it just creates a <code>ProductId</code> in the Category table?</p>
  <p>How do I make EF create a table which joins the 2 together without having to create a new <code>DbSet&lt;T&gt;</code></p>