title: EF Core 2.1: Self-referencing entity with one to many relationship generates additional column
body: <p>I have the following entity:</p>
  
  <pre class="lang-cs prettyprint-override"><code>public class Level
  {
      public int LevelId { get; set; }
      public int? ParentLevelId { get; set; }
      public string Name { get; set; }
  
      public virtual Level Parent { get; set; }
      public virtual HashSet&lt;Level&gt; Children { get; set; }   
  }
  </code></pre>
  
  <p>What I am having trouble here, is the <code>Children</code> property, which is configured like this in Fluent API:</p>
  
  <pre class="lang-cs prettyprint-override"><code>modelBuilder.Entity&lt;Level&gt;()
      .HasOne(x =&gt; x.Parent)
      .WithMany(x =&gt; x.Children)
      .HasForeignKey(x =&gt; x.ParentLevelId);
  </code></pre>
  
  <p>This results in some additional column being added by the migration:</p>
  
  <pre class="lang-cs prettyprint-override"><code>migrationBuilder.AddColumn&lt;int&gt;(
      name: "LevelId1",
      table: "Level",
      nullable: true);
  
  migrationBuilder.CreateIndex(
      name: "IX_Level_LevelId1",
      table: "Level",
      column: "LevelId1");
  
  migrationBuilder.AddForeignKey(
      name: "FK_Level_Level_LevelId1",
      table: "Level",
      column: "LevelId1",
      principalTable: "Level",
      principalColumn: "LevelId",
      onDelete: ReferentialAction.Restrict);
  </code></pre>
  
  <p>What am I doing wrong here?</p>
  
  <p>Edit: Question was marked as a possible duplicate of <a href="https://stackoverflow.com/questions/46160780">this question</a>; however, in that case, the model generation works - the issue is loading the data. Whereas here, the issue is that an additional column is generated.</p>