假设我有这些具有这些关系的实体:这只是一个虚构的例子,而不是我当前的实体。
- 课程
- 用户
- 新闻帖子
课程有很多用户,用户有很多课程
Courses 有很多 NewsPosts,NewsPosts 有很多 Courses
用户有很多 NewsPosts,NewsPosts 有很多用户
我首先将实体框架代码与 .NET Web API 一起使用,它以 JSON 的形式发回实体。当我尝试获取课程时,它会返回一个带有实体关系的 JSON 结果,这很好,但我希望设置它序列化的级别的限制,因此它不会序列化第一个之外的所有关系或二级。
GET Course/ 将被序列化为:
{
"Users":[{
"id":1,
"newsPosts": [{
"id":1,
"message":"foo"
}]
}],
"newsPosts":[{
"id":2,
"message":"bar"
}]
}
我想要的是仅序列化 1 个或 2 个级别,因此结果将是:
{
"Users":[{
"id":1,
"newsPosts": []
}],
"newsPosts":[{
"id":2,
"message":"bar"
}]
}
我添加了一个:
json.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
这是为了删除参考循环。
简而言之:有没有办法设置最大数量的节点进行序列化?