Entity Framework 6 creates Id column even though other primary key is defined
<p>I defined a DataObject as:</p>

<pre><code>public class SensorType : EntityData
{
    //PKs
    public string CompanyId { get; set; }
    public string ServiceId { get; set; }

    public string Type { get; set; }
}
</code></pre>

<p>And used fluent API to make CompanyId and ServiceId a composite key:</p>

<pre><code>modelBuilder.Entity&lt;SensorType&gt;()
            .HasKey(t =&gt; new { t.CompanyId, t.ServiceId });

//No autogeneration of PKs
modelBuilder.Entity&lt;SensorType&gt;().Property(t =&gt; t.ServiceId)
            .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None);
modelBuilder.Entity&lt;SensorType&gt;().Property(t =&gt; t.CompanyId)
            .HasDatabaseGeneratedOption(System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption.None);
</code></pre>

<p>Even though a Primary Key has been set Entity Framework creates a column named Id when I run Add-Migration:</p>

<pre><code>CreateTable(
            "dbo.SensorTypes",
            c =&gt; new
                {
                    CompanyId = c.String(nullable: false, maxLength: 128),
                    ServiceId = c.String(nullable: false, maxLength: 128),
                    Type = c.String(),
                    Id = c.String(
                        annotations: new Dictionary&lt;string, AnnotationValues&gt;
                        {
                            { 
                                "ServiceTableColumn",
                                new AnnotationValues(oldValue: null, newValue: "Id")

                   ...
                })
            .PrimaryKey(t =&gt; new { t.CompanyId, t.ServiceId })
            .Index(t =&gt; t.CreatedAt, clustered: true);

    }
</code></pre>

<p>How do I prevent EF from adding this column?</p>