Può succedere se hai proprietà di navigazione inversa in contractors classe, in questo modo:
public partial class contractors
{
//...
public virtual ICollection<a> aCollection { get; set; }
public virtual ICollection<a> aCollection1 { get; set; }
}
In questo caso EF non saprà quale appartiene a quale proprietà di navigazione nella classe a e supponi quattro relazioni invece di due (o tre invece di due se hai una sola collezione). Queste relazioni aggiuntive avranno una chiave esterna separata e una di queste è contractors_id . Se non esiste nel database, ottieni un'eccezione.
Puoi risolvere il problema applicando InverseProperty attributo nella classe a :
[InverseProperty("aCollection")]
public virtual contractors contractors { get; set; }
[InverseProperty("aCollection1")]
public virtual contractors contractors1 { get; set; }