2008-09-12 6 views
4

Ich war erfolgreich mit dem Schreiben meines eigenen SQL-Zugriffscodes mit einer Kombination aus gespeicherten Prozeduren und parametrisierten Abfragen und einer kleinen Wrapper-Bibliothek, die ich geschrieben habe, um den ADO.NET-Grunge zu minimieren. Das alles hat in der Vergangenheit sehr gut funktioniert und ich war ziemlich produktiv.Oldschool-SQL-DB-Zugriff im Vergleich zu ORM (NHibernate, EF, et al.). Wer gewinnt?

Ich bin auf dem Weg in ein neues Projekt - sollte ich meine alte Schule hinter mir lassen und mich in eine ORM-basierte Lösung stürzen? (Ich weiß, dass es zwischen NHibernate und EF große Unterschiede zwischen den Konzepten gibt. Ich möchte hier nicht näher darauf eingehen. Lassen Sie uns zur Argumentation LINQ sogar mit den Alternativen der alten Schule verbinden.) Ich suche Beratung bei der realen Anwendung von ORM-Typen gegen das, was ich weiß (und ziemlich gut weiß).

Old-School-ADO.NET-Code oder ORM? Ich bin mir sicher, dass es eine Kurve gibt - hat die Kurve einen ROI, der sich lohnt? Ich bin ängstlich und willig zu lernen, habe aber eine Frist.

Antwort

1

Eine gute Frage, aber ein sehr kontroverses Thema.

This blog post from Frans Bouma von ein paar Jahren zurück zitiert die Vorteile der dynamischen SQL (implizierenden ORMs) über gespeicherte Prozeduren entfachte ziemlich die feurigen Flammenkrieg.

2

Ich finde, dass LINQ to SQL ist viel, viel schneller, wenn ich Code prototype bin. Es bläst einfach jede andere Methode weg, wenn ich jetzt etwas brauche.

Aber es gibt Kosten. Im Vergleich zu handgerollten gespeicherten Procs ist LINQ langsam. Vor allem, wenn Sie nicht sehr vorsichtig sind, da scheinbar kleine Änderungen plötzlich zu 1 + N-Anfragen führen können.

Meine Empfehlung. Verwenden Sie zuerst LINQ to SQL, dann wechseln Sie zu Procs, wenn Sie nicht die benötigte Leistung erhalten.

0

Es gab eine große Diskussion zu diesem Thema bei DevTeach in Montreal. Wenn Sie zu dieser URL gehen: http://www.dotnetrocks.com/default.aspx?showNum=240 können Sie zwei Experten auf dem Gebiet hören (Ted Neward und Oren Eini) diskutieren die Vor- und Nachteile von jedem Ansatz. Wahrscheinlich die beste Antwort, die Sie zu einem Thema finden werden, das keine wirklich definitive Antwort hat.

+0

Ich wünschte DotNetRocks würde die Person interviewen, die das System.Data.DataSet geschrieben hat und seine Meinung über ORM erhalten. Ich bin auch neugierig, was Funktionsprogrammierer, die F # oder ocaml verwenden, an den Overhead von ORM denken. – BuddyJoe

Verwandte Themen