Возврат Объектов Модели данных Объекта как данные JSON

Я заметил, что люди записали об этой проблеме циклической ссылки вполне немного прежде, но никакое решение никогда не отправлялось.

Я говорю об этой ошибке: "Циклическая ссылка была обнаружена при сериализации объекта типа 'DocInvoice. Модели. Клиенты".

Кто-либо попытался сериализировать его к JSON с библиотекой Json.NET?

Если у меня есть Linq к запросам объектов, моя единственная опция состоит в том, чтобы вручить свойства объекта кода и не учесть тех, которые являются свойствами Navigational? Поскольку это - те делающие проблемы..

Это является раздражающим хотя, потому что необходимо вручить запись как десятки (или больше) свойства объекта в Linq "новый" оператор. Например, если я хочу все свойства, я могу сделать это, но это приводит к ошибке циклической ссылки:

var clients = from client in edmx.Clients
    from postcode in edmx.PostCodes
    where (client.client_firstname.StartsWith(q) ||
                   client.client_lastname.StartsWith(q)) && 
                   postcode.postcode == client.PostCodes.postcode
    select new {client, postcode};

единственная другая опция:

select new { client.client_id, 
             client.client_firstname, 
             ....., ... , 
             postcode.postcode
           }; ...
1
задан Chris 23 July 2012 в 20:17
поделиться

1 ответ

Проецирование на анонимный тип (ваш второй пример) - правильный способ сделать это. Это единственное, что предотвращает утечку информации из вашего кода, если в дальнейшем к сущности будут добавлены дополнительные свойства. Анонимный тип четко ограничивает то, что возвращает ваш код.

2
ответ дан 3 September 2019 в 01:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: