How to add composite foreign key in data annotation for Entity Framework 6
<p>I am working on ASP.NET application with Entity Framework 6. I have already database and I am using Code First existing Database approach.</p>

<p>I am two table and second table has Foriegn key along with its own primary key. I have used Column order but still getting following error. I have search online, tried different combination but still getting error.</p>

<pre><code>'System.Data.Entity.ModelConfiguration.ModelValidationException' occurred in EntityFramework.dll but was not handled in user code Sys_Nav_FunctionHierarchyEntity_Sys_Nav_FunctionEntity_Source: : Multiplicity is not valid in Role  'Sys_Nav_FunctionHierarchyEntity_Sys_Nav_FunctionEntity_Source' in relationship 'Sys_Nav_FunctionHierarchyEntity_Sys_Nav_FunctionEntity'. Because the Dependent Role properties are not the key properties, the upper bound of the multiplicity of the Dependent Role must be '*'.
</code></pre>

<h2>Class A</h2>

<pre><code> [Table("Sys_Nav_Function")]
 public class Sys_Nav_FunctionEntity
 {
    public Sys_Nav_FunctionEntity()
    { }


    [Key]
    public int Function_ID { get; set; }

    [StringLength(250)]
    [Required(ErrorMessage = "Required Title")]
    [Display(Name = "Function Title")]
    public string FunctionName { get; set; }

    [Required(ErrorMessage = "Required Hierarchy Level")]
    [Display(Name = "Hierarchy Level")]
    public int Hierarchy_Level { get; set; }


    public Sys_Nav_FunctionHierarchyEntity Sys_Nav_FunctionHierarchyEntity { get; set; }

    public ICollection&lt;Sys_Nav_FunctionInActionEntity&gt; Sys_Nav_FunctionInActionEntity { get; set; }

    public ICollection&lt;Sys_Nav_FunctionInControllerEntity&gt; Sys_Nav_FunctionInControllerEntity { get; set; }
}
</code></pre>

<h2>Class B</h2>

<pre><code> [Table("Sys_Nav_FunctionHierarchy")]
public class Sys_Nav_FunctionHierarchyEntity
{
    public Sys_Nav_FunctionHierarchyEntity()
    {

    }


    [Key, Column(Order =0)]
    public int Hierarchy_ID { get; set; }

    [ForeignKey("Sys_Nav_FunctionEntity"), Column(Order =1)]
    public int Function_ID { get; set; }

    public int Parent_Function_ID { get; set; }

    public Sys_Nav_FunctionEntity Sys_Nav_FunctionEntity { get; set; }
}
</code></pre>

<p><a href="https://i.stack.imgur.com/0QXKq.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/0QXKq.png" alt="enter image description here"></a></p>