Kann jemand einen einfachen Data Access Layer (C# .NET) vorschlagen? Nicht scharf auf die Verwendung der Microsoft Application Data Access Block, scheint sehr aufgeblasen und Overkill. Auch wollen nicht LINQ to SQL aus verschiedenen Gründen zu verwenden. Ich möchte darauf aufbauen und unser eigenes internes ORM erstellen, wiederum aus verschiedenen Gründen. In der Vergangenheit habe ich immer die Data Access Layer bereits gebaut, so war nie in Gebäude beteiligt ....
Antworten
Zu viele Anzeigen?Überprüfen Sie DbExtensions können Sie es verwenden, um den DAL-Code zu vereinfachen, oder Sie können Ihren eigenen ORM darauf aufbauen.
Für sehr einfache Anforderungen (und ich meine einfach!) würde ich eine DAL erstellen, die auf dem Repository-Muster basiert, wobei die SQL-Abfrage in den Repository-Methoden erfolgt und dann einfache POCOs ( Einfache alte CLR-Objekte ) werden erstellt und zurückgegeben.
Bei Bedarf können Sie Sprocs oder parametrisiertes SQL aufrufen. Dann ordnen Sie die Daten Ihrem Poco zu (verwenden Sie dazu einfach einen Standard-SQLDataReader)
Aber um ehrlich zu sein, in dem Moment, in dem die Abfragen groß oder komplex werden oder es viele Felder in Ihren Objekten gibt, sind Sie besser dran, wenn Sie eine richtige DAL/ORM die Last übernehmen lassen und sich auf Ihre Anwendung konzentrieren.
Bevor Sie Ihre Entscheidungen treffen können, gibt es einige Fragen, die Sie sich selbst beantworten müssen, bevor Sie beginnen, nicht nur, wenn Sie nicht möchten, dass Linq oder MS Data Access Layer das sind einige dieser Fragen:
- Möchten Sie in der Lage sein, den Code (Generator) zu ändern, oder möchten Sie eine DAL, die Ihnen den Service des Zugriffs auf die DB bietet?
- Möchten Sie mit XML-Konfigurationsdateien arbeiten oder bevorzugen Sie eine auf Reflexion basierende DAL?
- Möchten Sie Unterstützung für mehrere DBs oder können Sie mit einer bestimmten DB leben?
Vor einigen Jahren musste ich eine DAL für das Unternehmen, für das ich arbeitete, bauen und stellte fest, dass es einfacher war, als ich dachte. Das Ergebnis war ein ORM, das auf Reflection basiert und zu diesem Zeitpunkt viele DBs unterstützt: SqlServer, Oracle, PostgreSql und SqLite.
Wenn es Ihnen hilft für alles bauen Sie Ihre eigene DAL (wenn Sie die Zeit haben) seine eine große Lernerfahrung, die Sie einige Sql und mehrere Funktionen der Sprache, die Sie vielleicht nie wieder verwenden lernen.
Viel Glück dabei...
- See previous answers
- Weitere Antworten anzeigen