如何预防"A possible object cycle was detected"



我有两个模型Piece和Publisher。

public class Publisher
{
public int Id { get; set; }
public string Name { get; set; } = string.Empty;
[JsonIgnore]
public List<Piece>? Pieces { get; set; }
}
public class Piece
{
public int Id { get; set; }
public string Title { get; set; } = string.Empty;
public Publisher? Publisher { get; set; }
public int PublisherId { get; set; }
}

有了这样的[JsonIgnore],它会起作用,但如果我想获得与出版商相关的作品呢。从这篇文章中,我可以很好地找到出版商,但不能反其道而行之。如果[JsonIgnore]不在那里;检测到一个可能的物体周期";例外我怎样才能从出版社获得作品?

谢谢!

这是一个明显的循环,我建议您重新考虑您的数据结构,而不是试图找到一些允许您编译的漏洞。

PublisherPieces是不同的实体,除了Piece类中的PublisherID之外,我不会在其中任何一个中包含对另一个的引用。

如果你真的希望你的Publisher对象有一个List<Piece>,那没关系——只要你不想每次列出你的发布者时都自动加载它们。

但是,在子对象中包含整个父对象是不允许的。不要这样做。

如果您想获得Piece对象集合的发布者信息(例如,如果您已按标题搜索了它们(,那么您可以这样做。

相关内容

最新更新