我的实体定义为
public class MyEntity
{
public string Id { get; set; }
public string Name { get; set; }
}
public class MyEntityDetails: MyEntity
{
public string ExtendedField1 { get; set; }
public string ExtendedField2 { get; set; }
// ...etc
}
实体对象类型如下
public class MyEntityObjectType : ObjectType<MyEntity>
{
protected override void Configure(IObjectTypeDescriptor<MyEntity> descriptor)
{
descriptor.Field<MyEntityDetailsResolver>(
t => t.GetDetailsAsync())
.Name("details")
.Type<NonNullType<myEntityDetailsType>>();
}
}
这将显示MyEntity的一个“详细信息”字段。
现在,如果可能的话,我想使结构扁平化,因为这似乎更合逻辑。同时,我希望不必在展平后为每个扩展属性将解析器附加对descriptor.field
的多个调用。是否有一个优雅的方法呢?是否可以在“模型”属性本身上指定任何属性来指定其解析器,或者以其他方式指定?