Pergunta

Eu estou usando LINQ para acessar meu banco de dados e, assim, obtém um objeto criado-LINQ que eu quero enviar para o navegador (este é um webservice) como um JSON-objeto. Isso funciona bem até agora, mas quando eu adicionar algum testdata ao banco de dados (cerca de 10-20 entradas em cada mesa) isso falhar miseravelmente. A razão é que o LINQ-objeto contém todos os objetos referenciados. Isto torna-se enorme muito rápido. Por exemplo. cada resourcetype contém todos os seus recursos, que contém todos os reservationlines que contém cada reservas ..

Você tem alguma dica sobre como eu deveria resolver este? Existe uma configuração no serializer posso definir? Eu uso json.net para serialização de objetos. Ou há alguma configuração no LINQ?

No melhor caso eu não quero para criar novos objetos antes de eu serializar-los, uma vez que é muito conveniente para apenas serializar o LINQ-objetos diretamente:)

Foi útil?

Solução

A melhor prática, pelo menos para o momento, é não serialize LINQ para objetos SQL, ou entidades do Entity Framework. A principal razão para isso é que eles incluem dados dependente da implementação das classes de base.

Em vez disso, serialize o que você quer serializado. Transferência Use Data Objects combinando exatamente o que você deseja enviar, e cópia do LINQ para objetos SQL para eles antes de enviar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top