假设我有这些关系的权利:这只是一个虚构的例子,而不是我现在的实体.
>课程
>用户
> NewsPosts
课程有很多NewsPosts,
NewsPosts有很多课程
我首先使用.NET Web API实现实体框架代码,它以JSON的形式发回实体.当我尝试获取课程时,它会发回一个带有entites关系的JSON结果,这很好,但我希望设置一个限制它序列化的级别,这样它就不会序列化所有关系超出第一个或二级.
GET课程/将序列化为:
{ "Users":[{ "id":1,"newsPosts": [{ "id":1,"message":"foo" }] }],"newsPosts":[{ "id":2,"message":"bar" }] }
我想要的是仅序列化1个或2个级别,结果将是:
{ "Users":[{ "id":1,"newsPosts": [] }],"message":"bar" }] }
我添加了一个:
json.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
这是删除referencelooping.
简而言之:有没有办法设置最大数量的节点来序列化?