title: Can a property not be both key and ForeignKey in entity framework
body: <p>UPDATE</p>
  
  <p>I found out that adding a seperate key makes it work. So whats the deal with a property not being both key and ForeignKey to another table?</p>
  
  <pre><code>One or more validation errors were detected during model generation:
  
  \tSystem.Data.Entity.Edm.EdmAssociationEnd: : Multiplicity is not valid in Role 'TrafficImageQuestionExtraInfo_TrafficImageQuestion_Source' in relationship 'TrafficImageQuestionExtraInfo_TrafficImageQuestion'. Because the Dependent Role refers to the key properties, the upper bound of the multiplicity of the Dependent Role must be '1'.
  
  
  public class TrafficImageQuestionExtraInfoMap : EntityTypeConfiguration&lt;TrafficImageQuestionExtraInfo&gt;
  {
      public TrafficImageQuestionExtraInfoMap()
      {
          this.HasKey(t =&gt; new { t.QuestionId, t.TrafficImageGuid });
  
          this.Property(t =&gt; t.TrafficImageGuid).IsRequired();
  
          this.Property(t =&gt; t.QuestionId).IsRequired();
          this.Property(t =&gt; t.Key).IsRequired().HasMaxLength(50);
          this.Property(t =&gt; t.Value).IsRequired().IsUnicode().HasMaxLength(128);
          HasRequired(t =&gt; t.TrafficImageQuestion).WithMany(k =&gt; k.Properties).HasForeignKey(t =&gt; new { t.QuestionId, t.TrafficImageGuid });//.Map(m =&gt; m.MapKey("QuestionId", "TrafficImageGuid")).WillCascadeOnDelete();
      }
  }
  </code></pre>
  
  <p>and</p>
  
  <pre><code>public class TrafficImageQuestionMap : EntityTypeConfiguration&lt;TrafficImageQuestion&gt;
  {
      public TrafficImageQuestionMap()
      {
          // Primary Key
          this.HasKey(t =&gt; new { t.QuestionId, t.TrafficImageGuid });
  
          // Table &amp; Column Mappings
          this.ToTable("TrafficImageQuestions");
          this.Property(t=&gt;t.QuestionId).IsRequired();
  
          this.HasRequired(t =&gt; t.TrafficImage).
              WithMany(t=&gt;t.TrafficImageQuestions).
              HasForeignKey(t=&gt;t.TrafficImageGuid).WillCascadeOnDelete();
          this.Property(t =&gt; t.
              Answer).IsRequired();
  
      }
  }
  </code></pre>