Frage

Ich fange LINQ als eine echte Abfragesprache in Code zu verwenden, die Lesbarkeit zu verbessern. Bis vor kurzem habe ich Angst, LINQ zu berühren, weil der LINQ to SQL-Team bewegt unter dem Entity Framework-Team (versuchen, dieses Gespräch hier zu ignorieren) - wird die Abfragesprache eine sichere Wette für die Zukunft seines LINQ (so viel wie alles, was in diesem schnellen bewegen Industrie)?

War es hilfreich?

Lösung

Es lohnt sich zwischen „LINQ“ und „einer bestimmten LINQ-Provider“ zu unterscheiden. Ich denke, es ist sicher zu sagen, dass LINQ sich hier zu bleiben - und es ist phänomenal nützlich für die In-Prozess-Sammlung Verarbeitung über LINQ to Objects

.

Wie für die LINQ-Anbieter wird „win“ (falls vorhanden) -. Das ist ein schwieriger Einsatz mitzugehen

Ich würde sicher lernt die Grundlagen der LINQ selbst wenn -. Und LINQ to XML ist ein schöner XML-API als auch

Andere Tipps

Wie Jon sagte, es ist sehr wichtig, zwischen LINQ-Anbieter zu unterscheiden. Zum Beispiel

  • LINQ to Objekte: Dieses basiert weg von IEnumerable und wird so in den BCL tief verwurzelt, dass ich es sehr schwer zu finden, das wird überall
  • LINQ to SQL: Ich tue dies nicht annähernd verwenden so viel wie ich LINQ tun, aber ich weiß, es ist eine gute Folgen hat und die Leute scheinen es zu mögen.

Caveat. Ich auf LINQ gearbeitet, so bin ich ziemlich voreingenommen hier

Was ist LINQ wirklich ordentlich ist, was ich denke, dass wir wirklich richtig verstanden habe, ist, dass jemand einen LINQ-Anbieter schreiben kann. Alles, was benötigt wird ist ein paar bindable Methoden des richtigen Namen und plötzlich haben Sie Abfragesyntax.

var query = from it in someCollection select it.SomeProperty;

Ich kann diese Aussage schreiben, ohne einen der 3.5 Framework. Ich habe meinen eigenen LINQ Provider , die gegen den 2.0-Framework funktioniert und ist kompatibel mit der Abfragesyntax verwendet im Compiler.

Ich persönlich lehne mehr in Richtung des Lambda / Extension-Methode synatx aber der resultierende Code ist wirklich nicht anders.

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