0
我有一個擁有兩個導航屬性的擁有類,每個導航屬性引用一個ContactInfo對象,一個用於所有者屬性,另一個用於緊急聯繫人屬性。如何配置一個OData v4模型,使多個導航道具到同一張表
[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; }
}
當我試圖通過我的OData服務URL來獲得所有權的集合:
http://localhost:52283/odata/Ownership
我收到以下錯誤:
ORA-00904: \"Extent1\".\"ContactInfo_ID\": invalid identifier","type":"Oracle.ManagedDataAccess.Client.OracleException"
據我瞭解,這個錯誤是類似於這個問題發生了什麼:
Error while configuring multiple Navigation Properties to same table
問題是我正在使用OData v4,它引用System.Web.OData.Builder而不是System.Web.Http.OData.Builder。這意味着使用WithMany()調用來使用Fluent API來配置實體的答案(如在鏈接問題中)會失敗,因爲System.Web.OData.Builder中沒有WithMany()調用。