title: Duplicate navigation properties when using Entity Framework 6 and fluent api
body: <p>I got two models with a relations.</p>
  
  <pre><code>public class Customer
  {
      public Customer()
      {
          CustomerSites = new List&lt;CustomerSite&gt;();
      }     
  
      public IList&lt;CustomerSite&gt; CustomerSites { get; set; }
  }
  
  public class CustomerSite
  {
      public Guid CustomerId { get; set; }
      public Customer Customer { get; set; }
  }
  </code></pre>
  
  <p>The relations is built up by fluent api: (I have tried also with only one of the statement below)</p>
  
  <pre><code>protected override void OnModelCreating(DbModelBuilder modelBuilder)
  {
          modelBuilder.Entity&lt;CustomerSite&gt;()
              .HasRequired(x =&gt; x.Customer)
              .WithMany(x =&gt; x.CustomerSites)
              .HasForeignKey(x =&gt; x.CustomerId);
  
          modelBuilder.Entity&lt;Customer&gt;()
              .HasMany(x =&gt; x.CustomerSites)
              .WithRequired(x =&gt; x.Customer)
              .HasForeignKey(x =&gt; x.CustomerId);
  }
  </code></pre>
  
  <p>My question is why this code generates double foreign keys to the database like example below.</p>
  
  <pre><code> "dbo.CustomerSites",
              c =&gt; new
                  {                     
                      CustomerId = c.Guid(nullable: false),                     
                      Customer_Id = c.Guid(),
                  })
              .ForeignKey("dbo.Customers", t =&gt; t.CustomerId, cascadeDelete: true)
              .ForeignKey("dbo.Customers", t =&gt; t.Customer_Id)
  </code></pre>
  
  <p>It should only be one CustomerId and not Customer_Id. As you see this is also nullable. If I remove this column in the db context is throwing exception on update. I think this is quite weird....</p>