Ich habe eine Ownership-Klasse mit zwei Navigationseigenschaften, die jeweils auf ein ContactInfo-Objekt verweisen, eines für die Eigentümereigenschaft und eines für die Notfallkontakteigenschaft.So konfigurieren Sie ein OData v4-Modell mit mehreren Navigationsrequisiten für dieselbe Tabelle
[Table ("A_OWNERSHIP")]
public class Ownership {
public Ownership() {}
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }
[Required]
[Column("OWNER_ID")]
public int ownerID { get; set; }
[Column("EMERGENCY_CONTACT_ID")]
public int? emergencyContactID { get; set; }
// ** other members ellided **
public virtual ContactInfo owner { get; set; }
public virtual ContactInfo emergencyContact { get; set; }
}
Wenn ich versuche, die Sammlung von Eigentümern durch meine OData-Service-URL zu erhalten:
http://localhost:52283/odata/Ownership
Ich erhalte die folgende Fehlermeldung:
ORA-00904: \"Extent1\".\"ContactInfo_ID\": invalid identifier","type":"Oracle.ManagedDataAccess.Client.OracleException"
entnehme ich, dass dieser Fehler ist ähnlich was passiert in dieser Frage:
Error while configuring multiple Navigation Properties to same table
Das Problem ist, dass ich OData v4 verwende, die System.Web.OData.Builder und nicht System.Web.Http.OData.Builder verweist. Dies bedeutet, dass die Antworten (wie in der verknüpften Frage), die Fluent-API verwenden, um die Entität mithilfe des WithMany() -Aufrufs zu konfigurieren, fehlschlagen, da in System.Web.OData.Builder kein WithMany() -Aufruf erfolgt.