Domanda

Sono coinvolto nello sviluppo di un'applicazione a più livelli che utilizza LINQ2SQL separato dal server Web con un binding NET.TCP su WCF.

Le mie domande sono:

  1. Che tipo di misure dovrei prendere per ottenere le migliori prestazioni?
  2. Poiché gli oggetti entità restituiti da il LINQ deve essere convertito in a Elenco IEnumerable da serializzare ogni volta, c'è comunque da rimuovere questa dipendenza?
È stato utile?

Soluzione

1) Concentrarsi su una progettazione di database adeguatamente normalizzata. Direi che quando sei costretto a fare dei compromessi di progettazione nel tuo codice rispetto alla progettazione del database, se le prestazioni sono il tuo obiettivo, fai dei compromessi nella progettazione degli oggetti anziché nella progettazione del database. Tieni presente che non sarai in grado di eseguire una corretta progettazione di database di sottotipi / sottotipi che funzionerà con Linq to SQL (mi è stato detto che devi usare invece EF).

2) Dipende da cosa intendi qui. Se ti stai chiedendo come serializzare le classi anonime attraverso il cavo, la risposta semplice è: "non puoi, quindi non provare &"; Se vuoi mettere elenchi di oggetti attraverso il filo, usa semplicemente il metodo di estensione ToArray () sulle tue raccolte IEnumerable per spedire array di oggetti business sul filo.

Altri suggerimenti

Linq to SQL è molto lento a meno che non si compilino query. In caso contrario, l'applicazione verrà associata alla CPU poiché la maggior parte del tempo verrà impiegata per convertire gli alberi delle espressioni in SQL.

Stiamo parlando di un aumento delle prestazioni 10x se si utilizzano query compilate. Provalo :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top