我已經閱讀了很多關於這種類型的錯誤:循環引用
「時檢測到循環引用而序列化的對象類型...「 但是,當它發生在ASP.Net MVC Kendo網格操作方法中時,我找不到解決方案。我有以下的操作方法,我想在同一時間插入到另一個相關的表:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult SeasonTradeCreate([DataSourceRequest] DataSourceRequest request, [Bind(Prefix = "models")] IEnumerable<BKP_STRADE> models, decimal? DOC_SEQ)
{
if (models.Any())
{
foreach (BKP_STRADE modelItem in models)
{
Db.BKP_STRADE.Add(modelItem);
BKP_STRADE_ROW BKP_STRADE_ROW_OBJ = new BKP_STRADE_ROW();
BKP_STRADE_ROW_OBJ.BSTR_BSTR_SEQ = modelItem.BSTR_SEQ;
BKP_STRADE_ROW_OBJ.DOC_SEQ = DOC_SEQ;
Db.BKP_STRADE_ROW.Add(BKP_STRADE_ROW_OBJ);
}
Db.SaveChanges();
}
return Json(models.ToDataSourceResult(request, ModelState));
}
的事情是,它插入到兩個表正常,但我在手術後得到了下面的錯誤,以及:
「序列化類型爲'Tpph.Models.BKP_STRADE'的對象時檢測到循環引用。」
這意味着BKP_STRADE集合引用自身的實體之一。 JS序列化程序的默認設置無法處理。有關更多信息,請參閱https://stackoverflow.com/questions/1153385/a-circular-reference-was-detected-while-serializing-an-object-of-type-subsonic。 –
那我該怎麼辦?我只想在調用劍道網格的create action方法時插入兩個相關的實體。我該怎麼做 ? –
@AliRoshanbin:不要將**對象**鏈接到彼此,而應該只存儲他們的** ID **。序列化器試圖序列化整個對象,但它試圖序列化'myObj1','myObj1.RelatedObj2','myObj1.RelatedObj2.RelatedObj1','myObj1.RelatedObj2.RelatedObj1.RelatedObj2' ,等等...... – Flater