Frage Schlagen Sie ein einfaches ORM auf .NET vor - Design für die Verwaltung von Legacy-Apps


Ich bin damit beauftragt, eine Reihe von Legacy-Apps mit starker Stored Procedure-Nutzung zu verwalten, die vor 2005 erstellt wurden, als es noch kein ORM gab. Die Entwickler, die mit mir arbeiten, kennen weder Entity Framework noch LINQ und wollen nicht lernen.

Gibt es ein ORM für .NET, das eine einfache Objektschnittstelle zu vorhandenen Datenbanktabellen und möglicherweise gespeicherten Prozeduren bietet?

Ich bin ziemlich glücklich, wenn es mir ermöglicht, ein paar Zeilen zu codieren, um eine Klasse für jede Tabelle zu erhalten, und es hat Eigenschaften entsprechend den Daten in jeder Spalte und einige Methoden oder Eigenschaften, um Fremdschlüsselbeziehung / Viele-zu-viele-Beziehung zu lösen und umgekehrt.

Beispiel: Speichern eines Mitarbeiter- und Abteilungsdatensatzes

Employee e = new Employee("John", null);
Department d = new Department("QA");
d.save();
e.department = d;
e.save();

ohne INSERT SQL-Anweisungen zu schreiben.

BEARBEITEN: Ich benutze MS SQL Server 2008


5
2018-05-20 17:08


Ursprung


Antworten:


Schauen Sie sich Rob Conery an Massiv. Es ist einfach und scheint einfach zu bedienen. Es sieht jedoch so aus, als ob es .NET 4 erfordert.


4
2018-05-20 17:12



Subsonisch ist ziemlich einfach zu bedienen. LINQ to SQL ist auch eine gute Wahl. Sehen Sie sich auch an http://www.codeproject.com/KB/database/LightORMLibrary.aspx.


3
2018-05-20 17:15



Ich schlage vor, Sie zu benutzen PetaPoco, das recht frische ORM mit leicht zu lernender Linie.

Von der Autorenseite:

PetaPoco wurde ursprünglich von Rob Conerys Massive-Projekt inspiriert, jedoch für den Einsatz mit nicht-dynamischen POCO-Objekten. Es kam zustande, weil ich viele meiner Projekte fand, in denen SubSonic / Linq langsam oder gemischt aus Linq und CodingHorror wurde.

Ich brauchte eine Datenzugriffsschicht, die winzig, schnell, einfach zu benutzen war und auf .NET 3.5 und / oder Mono 2.6 laufen konnte (dh keine Unterstützung für dynamische Erweiterungen). Robs Anspruch, dass Massive nur 400 Codezeilen umfasste, machte mich betroffen und ich fragte mich, ob etwas Ähnliches ohne Dynamik möglich wäre.


3
2018-05-20 20:46



ich benutzte Unterschall in .NET 2.0-Projekten und es war nett. Leider scheint es, es ist nicht mehr entwickelt.


0
2018-05-20 17:17



NHibernate Vielleicht ist es auch etwas, in das ich schauen kann, obwohl ich persönlich den ursprünglichen Java Hibernate nicht sehr mochte, aber das war vor Jahren. Ich benutze auch Subsonisch regelmäßig. Die neueste SubSonic ist mehr Linq orientiert, aber schauen Sie sich speziell die "ActiveRecord" -Fähigkeit an. Ich denke, es deckt das objektbasierte Zeug ab, das du versuchst zu tun. Die Entwicklung auf SubSonic passiert nicht viel mehr als gelegentliche Fehlerbehebungen, aber es ist Open Source und es gibt eine Google-Gruppe für Support-Fragen. Es unterstützt auch eine gute Anzahl von Datenbanken, da Sie nicht erwähnt haben, welche DB Sie verwenden.


0
2018-05-20 17:36