Сериализация LINQ-объектов в JSON-строки - ОГРОМНЫЕ строки

StackOverflow https://stackoverflow.com/questions/1086866

  •  23-08-2019
  •  | 
  •  

Вопрос

Я использую LINQ для доступа к своей базе данных и, таким образом, получаю созданный LINQ объект, который я хочу отправить в браузер (это веб-сервис) в виде JSON-объекта.На данный момент это работает хорошо, но когда я добавляю некоторые тестовые данные в базу данных (около 10-20 записей в каждой таблице), это с треском проваливается.Причина в том, что LINQ-object содержит все объекты, на которые ссылаются.Это становится огромным довольно быстро.Например.каждый resourcetype содержит все свои ресурсы, которые содержат все reservationlines, которые содержат каждое резервирование..

Есть ли у вас какие-либо советы о том, как мне следует решить эту проблему?Есть ли настройка в сериализаторе, которую я могу установить?Я использую json.net для сериализации объектов.Или есть какая-то настройка в LINQ?

В лучшем случае я не хочу создавать новые объекты до их сериализации, так как очень удобно просто сериализовать LINQ-объекты напрямую :)

Это было полезно?

Решение

Наилучшей практикой, по крайней мере на данный момент, является не сериализовывать LINQ для объектов SQL или сущностей Entity Framework.Основная причина этого заключается в том, что они включают данные, зависящие от реализации, из базовых классов.

Вместо этого сериализуйте то, что вы хотите сериализовать.Используйте объекты передачи данных, точно соответствующие тому, что вы хотите отправить, и скопируйте в них объекты LINQ to SQL перед отправкой.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top