【发布时间】:2020-07-08 22:44:38
【问题描述】:
我正在尝试使用hotchocolate 代码优先方法实现类似于described here 过滤模型。如果至少有一个演员符合某些标准,我需要过滤电影。模型如下所示:
public class Movie
{
public IList<Actor> Actors { get; set; }
}
public class Actor { }
public class MovieTypeDef : ObjectType<Movie>
{
protected override void Configure(IObjectTypeDescriptor<Movie> descriptor)
{
descriptor.Field(x => x.Actors)
.Type<NonNullType<ListType<NonNullType<ActorTypeDef>>>>();
}
}
public class ActorTypeDef : ObjectType<Actor> { }
public class Query
{
public IList<Movie> Movies()
{
return new List<Movie>();
}
}
public class QueryTypeDef : ObjectType<Query>
{
protected override void Configure(IObjectTypeDescriptor<Query> descriptor)
{
descriptor.Field(x => x.Movies())
.Type<NonNullType<ListType<MovieTypeDef>>>()
.UseFiltering<MoviesFileringTypeDef>();
}
}
public class MoviesFileringTypeDef : FilterInputType<Movie>
{
protected override void Configure(IFilterInputTypeDescriptor<Movie> descriptor)
{
descriptor.Filter(x => x.Actors) // compilation error
}
}
似乎无法向MoviesFileringTypeDef 添加自定义过滤器,因为它只允许使用Movie 类的属性,并且那里不接受集合。
是否可以用热巧克力实现这样的过滤器?
【问题讨论】:
-
如果你实现了一个自定义查询重写器,它应该是可能的。
-
这个有更新吗?我遇到了类似的情况。如果有办法解决这个问题会很有帮助。
标签: c# graphql hotchocolate