Entwickler-Ecke

Datenbanken (inkl. ADO.NET) - LINQ oder ADO.NET


Skiller-1988 - Mi 27.08.08 08:15
Titel: LINQ oder ADO.NET
Hi,
zurzeit beginne ich mich mit ADO.NET und somit mit Clientzugriffe auf Datenbanken zu beschäftigen, da ich im Rahmen meiner Ausbildung zum Fachinformatiker für Anwendungsentwicklung eventuell ein Projekt in dieser Richtung machen möchte. Nun stellt sich mir jetzt die Frage ob ich da auf Techniken von ADO.NET Zugreifen soll, mit den ich schon ein bisschen Erfahrung gesammelt habe oder ob ich mich jetzt in die für mich relativ neuen Techniken von LINQ einarbeiten sollte? Ist LINQ in Zusammenarbeit mit SQL-Datenbanken immer die bessere Wahl? Lässt sich ungefähr sagen wie umfangreich eine Einarbeitung in LINQ ist? (Besitze Grundkenntnisse SQL)


Kha - Mi 27.08.08 12:02

user profile iconSkiller-1988 hat folgendes geschrieben:
Ist LINQ in Zusammenarbeit mit SQL-Datenbanken immer die bessere Wahl?
Solange es nicht um Performance sondern Komfort geht: Definitiv. Schon allein deshalb, weil du dich nicht mehr mit SQL herumschlagen musst ;) .
VS macht das Ganze schon unglaublich einfach. Ich habe bis heute noch nie einen O/RM benutzt, also einfach mal ausprobiert:
  1. Neue Konsolenanwendung
  2. "ADO.NET Entity Data Model" hinzufügen, Northwind.Products importieren

  3. C#-Quelltext
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
          using (var db = new NorthwindEntities()) {
            var query = from p in db.Products
                  group p.ProductName by p.ProductName.Substring(01into g
                  orderby g.Key
                  select g;

            foreach (var group in query) {
              Console.WriteLine(group.Key);
              foreach (var name in group)
                Console.WriteLine("- " + name);
            }
          }
    (Kann schon sein, dass die Query nicht das Gelbe vom Ei ist ;) )

  4. Quelltext
    1:
    2:
    3:
    4:
    5:
    6:
    7:
    8:
    9:
    10:
    11:
    12:
    13:
    14:
    15:
    16:
    A
    - Aniseed Syrup
    - Alice Mutton
    B
    - Boston Crab Meat
    C
    - Chai
    - Chang
    - Chef Anton's Cajun Seasoning
    - Chef Anton's Gumbo Mix
    - Carnarvon Tigers
    - Côte de Blaye
    - Chartreuse verte
    - Chocolade
    - Camembert Pierrot
    [...]

    Works like a charm, kann man dazu wohl nur sagen.


Noch ein kleiner Überblick über die O/RMs, denn das ist vielleicht das Verwirrendste überhaupt:


Skiller-1988 - Mi 27.08.08 12:13

Ok erstmal danke für deine Antwort, nur wenn ich ein Projekt mache und die Performance schlechter ist als bei ADO.NET (wo ich mich inzwischen eingearbeitet habe) bringt dem Kunden es ja dann letztendlich nichts das ich es beim Programmieren einfacher hatte sondern der legt sicher lediglich Wert auf Performance.
Sind die Performance Unterschiede bei kleinen Datenbanken überhapt zu spühren?
(z.B. komplette Mitarbeiter Verwaltung mit 100 Mitarbeitern)


Kha - Mi 27.08.08 13:59

Im Zweifelsfall muss man so etwas immer an den wirklichen Daten testen, aber ich sage einfach mal: Bei weniger als 10.000 Rows musst du dir darüber überhaupt keine Gedanken machen.