Frage

Ich bin ein ehemaliger klassischen ASP-Programmierer und manchmal PHP-Programmierer meine erste ASP.NET-Anwendung zu schreiben. Ich liebe die stark verbesserten ADO.NET Funktionen, aber ich fühle die Notwendigkeit, eine Datenbank-Klasse zu schreiben. Teilweise mag ich den Code konsolidieren, die tatsächlich mit der Datenbank interagiert, und zum Teil mag ich reduzieren, was wie Wiederholung anfühlt.

Eine einfache Datenbank-Klasse ist nicht schwer zu tun, aber ich bin mit parametrisierte Abfragen als eine meiner Sicherheitsmaßnahmen. Ich kämpfe mit, wie diese in eine Klasse zu integrieren. Ich schrieb eine Funktion, um den Datentyp einer Spalte in der Datenbank zurückzugeben, indem in der Tabelle und Spaltennamen vorbei, aber ich kann nicht glauben, von einer robusten Art und Weise der Tabellen- und Spaltennamen aus der SQL-Abfrage zu erhalten.

Mein Entwurf für die Klasse war eine Query () Funktion zur Auswahl haben, und eine Execute () Funktion für insert / update / delete. (Im Gegensatz nicht mehr öffentliche Funktionen zu haben, aber wollte nicht vor mir selbst bekommen.) Beide Funktionen nehmen eine SQL-Zeichenfolge und eine SortedList für die Parameter. Es könnte möglich sein, die Spaltennamen zu erhalten, indem Sie die Parameternamen in der SQL-Zeichenfolge zu finden und vor dem Gleichheitszeichen suchen. Ebenso sollte es recht einfach sein, die Tabellennamen zu erhalten, wenn die Abfrage Einsatz ist, zu aktualisieren oder löschen, weil man nur mit einer Tabelle zu einem Zeitpunkt, arbeiten. Die große Sorge ist die Auswahl, weil es sein könnte oder mehr verbindet, innere wählt, etc.

Bin ich in der falschen Richtung? Alles, was ich denke nicht, dass könnte mein Leben leichter oder schwerer machen? Jeder geschrieben eine Klasse für diese in jeder Sprache, die einige Ratschläge anbieten könnte?

War es hilfreich?

Lösung

Setzen Sie das Rad nicht neu erfinden. Schauen Sie in nHibernate oder LINQToSQL (oder LINQToEntities ) für Ihre ORM Bedürfnisse.

Andere Tipps

Möchten zweite der Anruf ein bewährtes Rad zu finden, die für Sie arbeitet, vor allem, wenn dies Ihr erster Ausflug ist in aspnet ... da sonst viel sein wird, Sie beschäftigt zu halten.

Möchten einen Vorschlag hinzufügen, für SubSonic , das ist vielleicht ein wenig leichter als nHibernate, aber es hängt wirklich von der Natur Ihres Projektes, sind sie beiden großen Werkzeuge, und beide haben uns Monate Arbeit in den letzten Jahren gespeichert.

ich denke, da dies Ihre erste Erfahrung in ASP.NET Sie gut aussehen in Linq to SQL geraten würde. Haben einige Tutorials , so dass Sie ein Gefühl dafür bekommen, wie es funktioniert, bevor Sie Linq-Abfragen zu codieren versuchen.

Die einzigen Gründe, warum ich denken kann NICHT Linq verwenden in Ihrem Fall zu SQL wäre, wenn Sie nicht SQL Server (oder müssen andere DBs unterstützen entweder jetzt oder in Zukunft), oder Sie können .NET 3.5 Runtime nicht verwenden aus irgendeinem Grund.

Viel Glück

Es klingt für mich wie Ihre „einfache Datenbank-Klasse“ ist zu viele Details aus den Klassen versteckt, die es verwenden müssen.

Ich habe Klassen geschrieben, die eine SqlCeEngine und setzen Methoden wie „LookupDescription (String-Code)“ enthalten ... Ich denke, diese Art von Design etwas, das Sie suchen in werden sollen. Und betrachten in LINQ suchen. Es hat eine Menge zu bieten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top