簡體   English   中英

基於“一對多”的反向關系映射使用實體框架和 GraphQl

[英]Inverse relationship mapping based on "one to many" using Entity Framework and GraphQl

我正在開發我的 API 的新版本,現在使用 GraphQL 來獲得一些優勢。

我有實體Partner ,它具有FarmList屬性。 在這一點上是可以的,當我在我的 API 上調用Partners ,我可以獲得他們的Farms

但是當我在 API 中調用Farms時,我希望它返回與之相關的Partner ,這就是我的問題。

我嘗試在Farm上的ForeignKey之外的Partner上使用InverseProperty注釋,但是對於Farm每個屬性,我都收到以下錯誤消息:

期望在 Int32 上找到屬性[attribute]但它不存在。

這是我的代碼的一部分:

public class Partner 
{
    ...
    [InverseProperty("PartnerOwner")]
    public List<Farm> Farms{ get; set; }
}

public class Farm 
{
    ...
    [Key]
    public int Codigo { get; set; }

    [ForeignKey("PartnerOwner")]
    public int Partner { get; set; }

    public Partner PartnerOwner { get; set; }
}

架構:

type Propriedade 
{
    Codigo: ID,
    ...
    Parceiro: Parceiro
}

type Partner 
{
    Codigo: ID,
    ...
    CountryFarms: [Farm]
}

我在那個發展中遺漏了一些細節嗎?

這是一個遺留代碼,因為它不遵循代碼約定,我也不能更改Farm Partner屬性。

在發布疑問時找到了解決方案(如 Rubber Duck Debugging)。

在 Schema 上,屬性名稱必須與類相同(我知道這似乎很明顯,但請注意)。 在這種情況下,特別是架構似乎可以正常工作:

type Propriedade {
                    Codigo: ID,
                    ...
                    Parceiro: Parceiro
                }

type Partner {
                    Codigo: ID,
                    ...
                    // Here is the trick
                    Farms: [Farm]
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM