Torakami Ответов: 0

Содержит ссылки на себя петлю обнаружены собственность "колл" с 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();
}

0 Ответов