基于 "one to many" 使用 Entity Framework 和 GraphQl 的逆向关系映射

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

我正在开发我的 API 的新版本,现在使用 GraphQL 以获得一些优势。

我有实体 Partner,它有 List 属性 个 Farm。在这一点上没关系,当我在 API 上调用 Partners 时,我可以得到他们的 Farms.

但是当我在 API 中调用 Farms 时,我希望它 return 与它相关的 Partner,这是我的问题。

我尝试在 Partner 上使用 InverseProperty 注释超越 Farm 上的 ForeignKey,但对于 Farm 的每个属性我都收到以下错误消息:

Expected to find property [attribute] on Int32 but it does not exist.

这是我的部分代码:

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]
}

我是否遗漏了有关该开发的一些细节?

这是遗留代码,因为它不遵循代码约定,我也无法更改 Partner 属性 of Farm

在发布疑惑的同时找到解决方案(如Rubber Duck Debugging)。

在 Schema 上,属性名称 必须与 class 相同(我知道这似乎很明显,但要小心)。在这种情况下,特别是架构似乎可以正常工作:

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

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