2009-06-29 2 views
0

Ich habe eine SQL Server-Tabelle, die generische Namen wie Text1, Text2 usw. hat. Die Tabelle wurde so entworfen, weil die gleiche Struktur für verschiedene Projekte verwendet wird.Zuordnung von Klasseneigenschaften zu generischen Spalten in der Tabelle .NET

Ich habe eine Klasse in. NET, die Eigenschaften hat. Angenommen, eine Customer-Klasse hat eine Eigenschaft namens FirstName.

Wie kann ich die Zuordnung von FirstName zu Text1 nur einmal (zentrale Stelle) in der Anwendung machen, damit ich die Mappings in der ganzen App nicht merken und hart codieren muss, wenn ich die verschiedenen DAL-Methoden erstelle?

Zum Beispiel möchte ich, dass die App weiß, wann ich aktualisieren möchte, einen FirstName einfügen, die DAL verwendet automatisch Text1. Grundsätzlich muss ich mich nicht daran erinnern, welche Eigenschaft zu welcher Spalte gehört. Die Idee ist, dass die Entwickler die Eigenschaften/Spalten nicht falsch zuordnen. Es ist immer konsistent.

Hinweis: Datenbankeinfügungen, Aktualisierungen und Löschungen sind nur durch gespeicherte Prozeduren zulässig.

Antwort

0

Schauen Sie sich die verschiedenen ORMs an. Für die Zuordnung einer Legacy-Datenbank ist perfekt.

+0

Ich kann keine ORMs von Drittanbietern verwenden. Ich bevorzuge es in .NET oder vielleicht LINQ. –

+0

Ich verstehe diese Mentalität nicht, das ist wie zu sagen "Ich kann keinen Schraubenzieher verwenden, um eine Schraube zu drehen". Oh gut, ich denke ... – mxmissile

+0

Einige Unternehmen erlauben keine dritten Teile für einfache Lösungen. Sie sagen, eine Powertoolbox für etwas Einfaches zu verwenden. Werfen in nHibernate, die eine große ORM-Tool nur so, dass ich weniger tippen muss, ist keine gute Idee. Das bedeutet auch, dass jeder Entwickler im Team es lernen muss. Ich suche nach einer Lösung, die ich in weniger als einer Stunde programmieren kann. –

0

Wenn Sie mit MS festgefahren sind und das Entitätsframework nicht verwenden möchten, ist LinqToSQL ziemlich gut.

+0

Wie? Auf der Suche nach Implementierung, nicht nur der Name einer Technologie. –

0

Wenn Sie nicht verwenden NHibernate (und ich würde dringend empfehlen Sie tun) oder sind nicht in der Lage LINQ to SQL verwenden (vielleicht sind Sie Code-Basis ist .NET 2.0) then ...

Sie wird wahrscheinlich eine Form von Fabrikmuster implementieren wollen. In Ihrem Factory-Objekt möchten Sie vielleicht ein stark variables Dataset zurückgeben und dann ein Objekt verwenden, um den Mapper für die Übersetzung zwischen Ihrem Dataset und DTO/View/Entity-Objekten zu verwenden. Jimmy von Lostechies hat ein großartiges Open-Source-Objekt für Objekt-Mapper erstellt, das Sie sehr nützlich finden könnten: AutoMapper.

Happy Codierung