Ich bin neugierig zu erfahren, warum eine Datenbankperson LINQ lernen sollte. Wie kann es nützlich sein?Warum würde ein Datenbankentwickler LINQ verwenden
Antwort
LINQ ein großer Vorteil gegenüber den meisten anderen Datenzugriffsmethoden hat: es dreht sich um die "Abfrage Ausdruck 'Metapher, was bedeutet, dass Abfragen wie Objekte herumgereicht und verändert und modifiziert werden können, alle vor werden sie ausgeführt (iteriert). In der Praxis bedeutet dies, dass Code modular und besser isoliert werden kann. Das Datenzugriffs-Repository gibt die Abfrage 'Aufträge' zurück, dann wird ein Zwischenfilter in der Anfrageverarbeitungspipeline diese Abfrage mit einem Filter dekorieren, dann wird sie an ein Anzeigemodul weitergeleitet, das Sortieren und Paginierung etc. hinzufügt. Am Ende wann iteriert, hat sich der Ausdruck vollständig in sehr spezifische SELECT ... WHERE ... ORDER BY ... LIMIT ...
(oder die andere Back-End-spezifische Seitenumbruch wie ROW_NUMBER) umgewandelt. Für Anwendungsentwickler ist dies unbezahlbar und es gibt einfach keine brauchbare Alternative. Deshalb glaube ich, dass LINQ hier bleiben wird und nicht in 2 Jahren verschwinden wird. Es ist definitiv mehr als nur eine Modeerscheinung. Und ich beziehe mich speziell auf LINQ als Datenbankzugriffsmethode.
Der Vorteil der Manipulation von Abfrageausdruckobjekten allein reicht aus, um LINQ zu einem erfolgreichen Gebot zu machen. Fügen Sie dazu die verschiedenen Containertypen hinzu, die manipuliert werden können (XML, Arrays und Collections, Objekte, SQL) und die einheitliche Schnittstelle, die es über all diese unterschiedlichen Technologien bietet. Bedenken Sie die Parallelverarbeitungsänderungen, die in .Net 4.0 eintreffen transparent in die LINQ-Verarbeitung von Arrays und Sammlungen integriert, und LINQ wird nicht wegfallen. Sicher, heute produziert es manchmal unlesbares, schlecht performantes und nicht entpackbares SQL und ist jeder dedizierte DBA Albtraum. Es wird besser.
Linq bietet "erstklassigen" Zugriff auf Ihre Daten. Das bedeutet, dass Ihre Abfragen jetzt Teil der Programmiersprache sind.
Linq bietet eine allgemeine Möglichkeit, auf Datenobjekte aller Art zuzugreifen. Beispielsweise kann dieselbe Syntax, die für den Zugriff auf Ihre Datenbankabfragen verwendet wird, auch für den Zugriff auf Listen, Arrays und XML-Dateien verwendet werden.
Lernen Linq vermittelt Ihnen ein tieferes Verständnis der Programmiersprache. Linq war der Treiber für alle Arten von Sprachinnovationen, wie z. B. Erweiterungsmethoden, anonyme Typen, Lambda-Ausdrücke, Ausdrucksbäume, Typinferenz und Objektinitialisierer.
Ich mag den 2. Grund am besten. – JohnB
Ist das eine echte Frage? Es kann nicht mit einem Code-Snippet beantwortet werden. Die meisten dieser Diskussionstyp-Fragen werden schnell geschlossen.
... wahrscheinlich am besten als Kommentar ausgedrückt. –
@Robert Harvey, ja wahrscheinlich am besten, ein Kommentar zu sein, aber der Inhalt ist wahr –
Ich denke, eine bessere Frage ist, warum sollte man SQL mit LINQ ersetzen, wenn man eine Datenbank abfragt?
Typ-Safe-Intellisense in Visual Studio, anstatt Ihre großen Blobs von Text (SQL-Abfragen) ohne Typ-Prüfung und keine Sicherheit (bläst nur zur Laufzeit in der Produktion hochfahren .....) –
@mark_s: obwohl es andere Möglichkeiten gibt, dies zu tun. Stark typisierte Datensätze zum Beispiel. –
Linq ist die bevorzugte Methode für den Zugriff auf Ihre Daten über ein ORM wie Linq to SQL oder das Entity Framework. –
"Kennen Sie Ihren Feind"?
OTOH, aus Interesse. Ich lerne mehr über XMl, XSLT, XSDs usw., weil ich eine Verwendung für sie als Datenbankentwickler sehen kann.
Ich denke, einer der vielen Gründe, warum man es Linq in Erwägung ziehen könnte, weil Linq große Steigerung der Produktivität und enorm viel Zeit ist Schoners
Diese Frage veranlasst mich auch zu fragen, wenn LINQ immens populär wird, wissen serverseitige Entwickler SQL sowie ihre Vorgänger?
Wie gut kennen Sie die Montage? –
- 1. Warum würde Google ein Font-Tag verwenden?
- 2. Warum würde mysqli_fetch_assoc ein leeres Objekt zurückgeben?
- 3. Multithreading: Wann würde ich ein Join verwenden?
- 4. Warum würde ich ein Kendo-Modell verwenden, anstatt nur eine Transport-/Datenquelle zu verwenden?
- 5. Warum würde das kompilieren?
- 6. Würde ich ein ORM verwenden, wenn ich Stored Procedures verwende?
- 7. linq Wie würde ich diese Anweisung bestellen
- 8. Warum würde ich Mühe haben, Task.ConfigureAwait (continueOnCapturedContext: false) zu verwenden;
- 9. Warum würde connect() EADDRNOTAVAIL geben?
- 10. Warum würde Collection.IMongo.Save() nicht zurückgeben?
- 11. Warum würde CFRelease (NULL) abstürzen?
- 12. Warum würde ein TreeView in WinForms unerwartet zusammenbrechen?
- 13. Warum würde ein Xpath-Positionsauswahlausdruck mehrere Knoten zurückgeben?
- 14. Warum würde ein Schema eine XML-Spalte langsamer machen?
- 15. Warum würde ein höherer Ladefaktor in HashMap die Suchkosten erhöhen?
- 16. Wie würde ich ein separates Model-Projekt mit PetaPoco verwenden?
- 17. Warum würde max-width hier nicht funktionieren?
- 18. Anonyme Generika - Wo würde ich das verwenden?
- 19. LINQ Verwenden von Primzahlen
- 20. Verwenden LINQ für beliebige
- 21. Warum würde die Skalierung die Latenz erhöhen?
- 22. Warum kann ich nicht LINQ mit WorkItemCollection verwenden
- 23. Warum kann ich Tag-Namen nicht Linq verwenden entfernen
- 24. Wie würde ich linq verwenden, um die am häufigsten vorkommenden Daten in einem Datensatz zu finden?
- 25. Warum würde Feval NaN in MATLAB zurückgeben?
- 26. Warum würde TextToSpeech.getLanguage() * manchmal * null zurückgeben?
- 27. Warum würde IPv6 einen Web Deploy stören?
- 28. Wie würde ich vermeiden, Thread.sleep() zu verwenden?
- 29. Warum würde jQuery clobber jQuery UI validieren?
- 30. XPath konfigurieren und LINQ verwenden
Fragen Sie, ob ein DBA LINQ lernen sollte? Oder ist diese Datenbankperson auch ein Entwickler? – Kinze