Laden...

Entity Framework Dynamisches Mapping

Erstellt von onlinegurke vor 15 Jahren Letzter Beitrag vor 15 Jahren 573 Views
O
onlinegurke Themenstarter:in
778 Beiträge seit 2007
vor 15 Jahren
Entity Framework Dynamisches Mapping

verwendetes Datenbanksystem: EF allgemein

Hallo zusammen,

mal so eine grundsätzliche Frage zum Entity Framework:

Grundprinzip ist ja soweit ich es verstanden hab, dass Daten als Entitäten angesehen werden, die dann irgendwie auf eine oder mehrere Tabellen gemappt werden. Wie ist mir erstmal egal. Welcher Entität ein Objekt angehört bestimmt sich aber rein nur aus dem Typ des Objekts. Jetzt hab ich aber das Problem, dass ich bestimmte Entitäten (ich sag jetzt mal Produkte) an verschiedenen Stellen speichern will, aber nicht zwei Entitäten aufmachen will.

Eigentlich würde ich es aber trotzdem klasse finden, wenn ich, wenn ich sage, ich will alle Produkte haben, dass dann auch an zwei Stellen geschaut wird. Und wenn die Objekte dan persistiert werden sollen, will ich möglichst noch beeinflussen können, an welche Quelle zurückgeschrieben werden soll. Geht das? Nächster Schwierigkeitsgrad wäre dann, dass eine Quelle in Wirklichkeit eine View der anderen Quelle ist, die einfach nur ein paar Daten rausfiltert, also beim Selektieren nicht beachtet werden muss. Ach ja, außerdem kann es natürlich abhängig von den Benutzerrechten passieren, dass eine oder mehrere Quellen nicht erreichbar sind.

Jetzt die eigentliche Frage: Meint ihr das EF kriegt sowas hin? (Wenn ja: Wie?)

Gruß

Georg

3.003 Beiträge seit 2006
vor 15 Jahren

Ja, geht. Der einfache Weg wäre:

(abstrakte) Entität als Superklasse
(konkrete) Entität, die von der abstrakten abgeleitet ist und sich auf Objekte in der einen Tabelle bezieht
(konkrete) Entität, die von der abstrakten abgeleitet ist und sich auf Objekte der anderen Tabelle bezieht.

Dann kannst du entweder alle Objekte saugen, oder nur die aus einer bestimmten Tabelle (also die eines bestimmten Typs), und kannst beim Erzeugen eines Objekts durch seinen Typ festlegen, wo es hingespeichert wird. Ausserdem hast du die Möglichkeit, wenn sich die beiden Tabellen nicht 100%ig decken, diese Unterschiede auch noch mit in dein Modell einfließen zu lassen.

Also: Vererbung ist dein Freund.

LaTino

"Furlow, is it always about money?"
"Is there anything else? I mean, how much sex can you have?"
"Don't know. I haven't maxed out yet."
(Furlow & Crichton, Farscape)