sql >> Database >  >> RDS >> PostgreSQL

Fout in LINQ (kolom bestaat niet) bij gebruik van Entity Framework

Het kan gebeuren als u inverse navigatie-eigenschappen heeft in contractors klasse, zoals zo:

public partial class contractors
{
    //...

    public virtual ICollection<a> aCollection { get; set; }
    public virtual ICollection<a> aCollection1 { get; set; }
}

In dit geval weet EF niet welke behoort tot welke navigatie-eigenschap in klasse a en ga uit van vier relaties in plaats van twee (of drie in plaats van twee als je maar één verzameling hebt). Die aanvullende relaties hebben een aparte externe sleutel en een daarvan is contractors_id . Als dat niet in de database bestaat, krijg je een uitzondering.

U kunt het probleem oplossen door de InverseProperty . toe te passen attribuut in klasse a :

[InverseProperty("aCollection")]
public virtual contractors contractors { get; set; }
[InverseProperty("aCollection1")]
public virtual contractors contractors1 { get; set; }



  1. Waarom mag ik geen geserialiseerde arrays in mijn databaseveld invoegen?

  2. Voorwaardelijke JOIN-instructie SQL Server

  3. SUPER privilege(s) voor deze operatie

  4. Meerdere kleine zoekopdrachten versus een enkele lange zoekopdracht. Welke is efficiënter?