ADO.net oder LINQ?

Hallo zusammen,

ich möchte in C# eine Anwendung schreiben, die Datenbankoperationen durchführen soll - die üblichen SQL-Sachen: lesen, schreiben, löschen ergänzen. Soweit es möglich ist, soll das Programm mit verschiedenen Datenbanken - Access, SQLServer, Oracle klarkommen.

Scheinbar gibt es dafür die Möglichkeiten ADO.net und auch LINQ. Welche der beiden Alternativen ist dafür die sinnvollere, oder ist es einfach nur Geschmacksache?

Mit „einfachen ADO“ kennen ich mich aus, mit den Datenset in ADO.net komme ich auch klar, nur scheint das zurückschreiben in die Datenbank etwas aufwendiger zu sein…

Vielen Dank für eure Tipps

Hi pb
Linq nimmst du normalerweise wenn deine Anwendung zeitgleich mit unterschiedlichen Datenquellen (Collections, XML und meinethalten SQL) arbeitet und du für alle diese Quellen den gleichen Code nutzen willst. Hast du einen reinen SQL Server reicht ADO.Net mehr als nur aus.

Das Zurückschreiben kann auch einfach sein wenn die Abfragen nicht aus mehreren Tabellen zusammen geJOINT sind. Wenn du einen Table über den Server Explorer in ein Dataset ziehst (drag and drop) generiert das Studio automatisch Select, Insert, Update und Delete für dich und hinterlegt die Kommandos im DataAdapter.

Danach kanst du mit Rechtklick auf den Adapter und „Add Query“ weitere Abfragen oder beliebige Kommandos erzeugen. Der Vorteil ist das die Kommandos immer parametrisiert sind und damit typsicher und sicher gegen SQL Injection. BTW kannst du auch StoredProcedures auf gleichem Weg via DragDrop in das DataSet ziehen oder bei „Add Query“ sagen neue Abfrage soll gleich Stored Procedure sein - dann hast du ausreichend Layers of Security und optimale Geschwindigkeit.

LG Dirk