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()调用。