[英]Inverse relationship mapping based on "one to many" using Entity Framework and GraphQl
我正在开发我的 API 的新版本,现在使用 GraphQL 来获得一些优势。
我有实体Partner
,它具有Farm
的List
属性。 在这一点上是可以的,当我在我的 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.