2010-11-22 13 views
2

Ich bin neu in .NET und früh im Entwurfsprozess einer Front-End-Anwendung für eine Datenbank und auf der Suche nach einem Rat.Design-Tipp: Entity Framework nützlich mit gespeicherten Prozeduren?

ich nicht sicher bin ich es bekommen ...

Die DB sehr stark normiert ist, sondern bietet viele gespeicherte Prozeduren zu abstrahieren dem logischen Modell (ex. Sproc Wählen Sie liefern einen Datensatz aus mehreren Tabellen eng reflektierenden das Geschäftsobjekt, Einfügen/Aktualisieren von Sprocs in mehrere Tabellen usw.)

Wie soll ich die DAL entwerfen? Ich bin nicht sicher, was der Nutzen des Entity Framework in diesem Zusammenhang ist. Wenn es generiert wird, spiegelt es das normalisierte DB-Schema statt einer Abstraktion davon wider. Oder wenn ich die Sprocs zuordnen, um sie zu generieren (was einige Arbeit erfordert, da das T-SQL in den Sprocs dynamisch ist und mit Joins), bekomme ich die Business-Objekte in Ordnung, kann aber nicht den Vorteil sehen: die Entitäten repräsentieren Da es sich um eine einzelne abstrakte Tabelle und nicht um eine Gruppe von Entitäten mit Datarelations handelt, verarbeitet die Prozedur die Aufrufe an mehrere Tabellen. Es scheint mehr Arbeit zu geben, die erzeugten Änderungsereignisse den Sprocs zuzuordnen, als die Sprocs direkt aufzurufen.

Was fehlt mir?

Danke,

Michael.

+0

Ich kann nicht wirklich herausfinden, was Sie wirklich tun möchten .. Die erste Frage ist, wie möchten Sie Ihr Entitätsmodell definieren - tun Sie es zuerst und dann Passen Sie die Datenbank entsprechend an. EF macht keine Magie, die Zuordnung der db direkt zu Entitäten ist eine komplexe Aufgabe, also erwarte nicht zu viel. – kubal5003

+0

Ein konkretes Beispiel: Ich habe Personen- und Organisationstabellen, von denen jede mit einer Adresstabelle in einer Viele-zu-Viele-Beziehung verknüpft ist (Zwischentabellen mit zusätzlichen Eigenschaften). Die DB-Logik und die Sprocs geben nur (oder aktualisieren) frei: Personentabelle, Org-Tabelle, PersonAddress-Tabelle und OrgAddress, abstrahieren die Zwischentabellen (gleiche Logik für Telefone usw.). Ich habe nur separate ST-Datasets erstellt: Person (+ verknüpfte Tabellen), Organisation, etc .. aber dann vergesse ich über EF? Entschuldigung, ich bin offensichtlich ein Anfänger ... – Mike

Antwort

0

Sie können tun dies mit der EF, aber der Designer wird Ihnen nicht helfen; Es weiß nicht, wie man einen Entitätstyp aus einer gespeicherten proc-Signatur ableitet. Sie müssten das EDMX von Hand schreiben. CTP 4 Code-First kann einfacher sein, aber ich habe es noch nie ausprobiert.

0

Nach ein paar Recherchen denke ich, dass ich auf dem richtigen Weg bin. Die folgenden Artikel waren sehr hilfreich: Entity Framework Modeling: Table Per Hierarchy Inheritance

siehe auch: Entity Framework Modellierung: Entity

Splitting

klar zu sein, was ich wollte zu abstrahieren des DB-Schema in dem EF-Modell war. (Ich wollte keine Entität, die "nichts" repräsentiert, wie eine Viele-zu-Viele-Beziehung).

Neben diesen Modellierungstechniken verwendete ich Ansichten, um das EF-Modell zu generieren, und fügte sprocs für CRUD hinzu.

Wie gesagt, ich bin ein Anfänger. Lassen Sie mich wissen, wenn ich auf einer falschen Spur bin ...

Verwandte Themen