我有兩個模型,Sever 和 Update。這兩個類之間的關系是 1...*N,這意味著每個 Server 都有多個更新。這是我的服務器模型:
public class Server
{
public Server()
{
UpdateList = new HashSet<Update>();
}
[Key]
[Required]
public int ID { get; set; }
[Required]
public string ComputerName { get; set; }
[Required]
public string Type { get; set; }
[Required]
public string Estado { get; set; }
[Required]
public string Phase { get; set; }
public virtual ICollection<Update> UpdateList { get; set; }
}
這是我的更新模型:
public class Update
{
[Required]
public int ID { get; set; }
public string updateId { get; set; }
public string updateTitle { get; set; }
public string updateDescription { get; set; }
[System.ComponentModel.DataAnnotations.Schema.ForeignKey("Server")]
[Display(Name = "Server")]
public int? ServerFK { get; set; }
public virtual Server Server { get; set; }
}
這是我在郵遞員中使用的 POST 請求:
{
"computerName":"ServerTestUpdate",
"type":"ServidorAplicacional",
"estado":"Reboot Pending",
"phase":"0",
"updateList":
[{
"updateId":"idTest",
"updateTitle":"Update1",
"updateDescription":"TestDescription"
}]
}
但是,當我這樣做時,我收到以下錯誤:
System.Text.Json.JsonException: 檢測到可能的物件回圈。這可能是由于回圈或物件深度大于最大允許深度 32。考慮在 JsonSerializerOptions 上使用 ReferenceHandler.Preserve 以支持回圈。
語法有問題還是控制器中有問題?
先感謝您
uj5u.com熱心網友回復:
這很可能是序列化物件的問題,因為反序列化不關心回圈。這可能是因為您的Server物件有一個Updates的集合,所有這些都有一個Server指向回的屬性,這會導致一個回圈。
如果您向JsonIgnore屬性添加屬性,這應該消失(從System.Text.Json.Serialization命名空間)
[JsonIgnore]
public virtual Server Server { get; set; }
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/343449.html
