Frage

Ich bin in der Entwicklung einer abgestuften Anwendung beteiligt, die verwendet LINQ2SQL vom Webserver getrennt mit einem net.tcp Bindung an WCF.

Meine Fragen sind:

  1. Welche Art von Maßnahmen soll ich nehmen die beste Leistung zu erreichen?
  2. Da die Entitätsobjekten zurück durch die LINQ müssen eine umgewandelt werden IEnumerable Liste serialisiert werden jedes Mal, ist es trotzdem zu entfernen diese Abhängigkeit?
War es hilfreich?

Lösung

1) Konzentrieren Sie sich auf einem ordnungsgemäß normalisierte Datenbank-Design. Ich würde sagen, dass, wenn Sie Design Abwägungen im Code gegen Datenbank-Design zu machen gezwungen sind, wenn die Leistung Ihr Ziel ist es, machen Kompromisse in Ihrem Objekt-Design statt Ihrem Datenbank-Design. Verstehen Sie, dass Sie gehen zu können, keine richtige Supertyp / Subtyp Datenbank-Design zu tun, die mit Linq to SQL arbeiten (ich habe dir gesagt, müssen die EF stattdessen verwenden).

2) abhängig, was Sie hier bedeuten. Wenn Sie sich fragen, wie Sie anonyme Klassen über den Draht serialisiert werden würde, die einfache Antwort ist: „Sie können nicht, also nicht versuchen“. Wenn Sie eine Liste von Objekten über den Draht setzen möchten, verwenden Sie einfach die ToArray () Erweiterungsmethode auf IEnumerable Sammlungen Schiff Arrays Ihrer Business-Objekte über den Draht.

Andere Tipps

Linq to SQL ist sehr langsam, wenn Sie Abfragen erstellen. Andernfalls wird Ihre Anwendung CPU als die meiste Zeit gebunden werden verbringen Expression Bäume in SQL zu konvertieren.

Wir sprechen über 10x Performance-Gewinn, wenn Sie kompilierten Abfragen verwenden. Versuchen Sie es:)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top