Содержит ссылки на себя петлю обнаружены собственность "колл" с businesslogic тип '.в LINQ.вызов'. Путь '[1][0].вызова.поддержки.звонки[0].calllines[0]'.
Привет ,
Я пытаюсь объединить весь список элементов в один основной список элементов, а затем хочу сериализовать их в json.
Howerver во время этого я получаю ошибку, когда пытаюсь сериализовать свой список
Цитата:Содержит ссылки на себя петлю обнаружены собственность "колл" с BusinessLogic тип '.В LINQ.Звони". Путь '[1][0]. Вызов. Клиент.Звонки[0]. Телефонные Линии[0]'.
пожалуйста, предложите
public DataHelper.OperationResult DeleteCallByCallId(int callId, string comments) { using (var transaction = new TransactionScope()) { try { List<object> lstMasterData = new List<object>(); //CallSample var callSampleData = (from cs in _db.CallSamples.Where(c => c.IsInActive == false) join cl in _db.CallLines.Where(c => c.IsInActive == false) on cs.CallLineID equals cl.CallLineID where cl.CallID == callId select cs).ToList(); if (callSampleData != null && callSampleData.Count > 0) { lstMasterData.Add(callSampleData); _db.CallSamples.DeleteAllOnSubmit(callSampleData); _db.SubmitChanges(); } //CallOrder Deletion var callOrderData = _db.CallOrders.Where(c => c.CallID == callId).ToList(); if (callOrderData != null && callOrderData.Count > 0) { lstMasterData.Add(callOrderData); _db.CallOrders.DeleteAllOnSubmit(callOrderData); _db.SubmitChanges(); } //Call Attachment var callAttachmentData = _db.CallAttachments.Where(c => c.CallID == callId).ToList(); if (callAttachmentData != null && callAttachmentData.Count > 0) { lstMasterData.Add(callAttachmentData); _db.CallAttachments.DeleteAllOnSubmit(callAttachmentData); _db.SubmitChanges(); } //Call Product var callProductData = _db.CallLines.Where(c => c.CallID == callId).ToList(); if (callProductData != null && callProductData.Count > 0) { lstMasterData.Add(callProductData); _db.CallLines.DeleteAllOnSubmit(callProductData); _db.SubmitChanges(); } //Joint Call var jointCallData = _db.JointCalls.Where(c => c.CallID == callId).ToList(); if (jointCallData != null && jointCallData.Count > 0) { lstMasterData.Add(jointCallData); _db.JointCalls.DeleteAllOnSubmit(jointCallData); _db.SubmitChanges(); } //Call long? diaryId = 0; var data = _db.Calls.Where(c => c.CallID == callId).ToList(); if (data != null) { lstMasterData.Add(data); diaryId = data[0].DiaryID; _db.Calls.DeleteAllOnSubmit(data); _db.SubmitChanges(); } //Diary data var diaryData = _db.Diaries.Where(d => d.DiaryID == diaryId).ToList(); if (diaryData != null) { lstMasterData.Add(diaryData); _db.Diaries.DeleteAllOnSubmit(diaryData); _db.SubmitChanges(); } var output = JsonConvert.SerializeObject(lstMasterData); transaction.Complete(); return DataHelper.OperationResult.Success; } catch (Exception ex) { return DataHelper.OperationResult.Failed; } } }
Что я уже пробовал:
Я пробовал использовать ,
JsonConvert.SerializeObject(YourPOCOHere, Форматирование.Изрезанный,
новые JsonSerializerSettings {
ReferenceLoopHandling = ReferenceLoopHandling.Сериализовать
});
Я тоже пробовал это
//Вызов
долго? diaryId = 0;
данных var = _db.Звонки.Метода singleordefault(с =&ГТ; в.CallID == callId);
if (data != null)
{
JsonSerializerSettings стандарте JSS = новый JsonSerializerSettings { ReferenceLoopHandling = ReferenceLoopHandling.Игнорировать };
результат ВАР = JsonConvert.SerializeObject(данных, форматирование.Отступ, сдававших);
diaryId = данные.DiaryID;
_db.Звонки.DeleteOnSubmit(данные);
_db.Метода submitchanges();
}