Może się to zdarzyć, jeśli masz odwrócone właściwości nawigacji w contractors
klasa, jak tak:
public partial class contractors
{
//...
public virtual ICollection<a> aCollection { get; set; }
public virtual ICollection<a> aCollection1 { get; set; }
}
W tym przypadku EF nie będzie wiedział, który należy do której właściwości nawigacji w klasie a
i przyjmij cztery relacje zamiast dwóch (lub trzy zamiast dwóch, jeśli masz tylko jedną kolekcję). Te dodatkowe relacje będą miały oddzielny klucz obcy, a jednym z nich jest contractors_id
. Jeśli nie istnieje w bazie danych, otrzymasz wyjątek.
Możesz rozwiązać problem, stosując InverseProperty
atrybut w klasie a
:
[InverseProperty("aCollection")]
public virtual contractors contractors { get; set; }
[InverseProperty("aCollection1")]
public virtual contractors contractors1 { get; set; }