Pergunta

Estou envolvido no desenvolvimento de uma aplicação em camadas que usa LINQ2SQL separado do servidor web com uma net.tcp em WCF.

As minhas perguntas são:

  1. Que tipo de medidas devo tomar para alcançar o melhor desempenho?
  2. Uma vez que a entidade objetos retornados por a necessidade LINQ para ser convertido a um lista IEnumerable para ser serializado toda vez, há de qualquer maneira para remover essa dependência?
Foi útil?

Solução

1) Concentre-se em um projeto de banco de dados devidamente normalizada. Eu diria que quando você é forçado a fazer trocas de design em seu projeto de banco de dados de código vs., se o desempenho for seu objetivo, fazer trocas em seu projeto objeto em vez de seu projeto de banco de dados. Entenda que você não vai ser capaz de fazer um bom design de banco de dados supertipo / subtipo que irá trabalhar com o LINQ to SQL (me disseram que você precisa para usar o EF em vez disso).

2) Depende do que você quer dizer aqui. Se você está perguntando como você serializar classes anônimas através do fio, a resposta fácil é: "você não pode, por isso não tente". Se você quiser colocar listas de objetos através do fio, basta usar o) método de extensão ToArray (em suas coleções IEnumerable para enviar matrizes de seus objetos de negócios ao longo do fio.

Outras dicas

LINQ to SQL é muito lento, a menos que você compilar consultas. Caso contrário, sua aplicação será vinculada à CPU como a maior parte do tempo será gasta converter Árvores de expressão em SQL.

Estamos falando de 10x ganho de desempenho se você usar consultas compiladas. Experimente:)

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