2010-02-02 4 views
9

Ich habe ein Entity Framework-Modell, das vom Visual Studio 2008-Assistenten basierend auf einer Sql Server 2008-Datenbank generiert wurde.So erstellen Sie eine Beziehung zwischen Tabelle und Sicht im Entity Framework

Das Modell hat eine Ansicht, die logisch in einer Viele-zu-Viele-Beziehung mit einer anderen Tabelle über eine Join-Tabelle verknüpft ist (in der Datenbank durch einen Insert/Update-Trigger erzwungen). Beide Tabellen und die Ansicht sind Teil des Modells. Da Sie jedoch keine Fremdschlüsseleinschränkung für eine Ansicht haben können, besteht keine Beziehung zwischen der Ansicht und der Join-Tabelle.

Ist es möglich, eine Beziehung im Entity Framework-Modell für diese Verknüpfung zwischen der Join-Tabelle und der Sicht zu erstellen?

Vielen Dank für jede Hilfe.

Antwort

16

Ja, Sie können dies tun, aber der GUI-Designer wird nicht in der Lage sein, es für Sie abzuleiten.

Das erste, was Sie tun müssen, ist configure the view correctly. Der Designer kann den Primärschlüssel nicht ableiten, daher müssen Sie diese Informationen bereitstellen.

Sie können jetzt mit der rechten Maustaste in den leeren Bereich im Designer klicken und dann eine Verknüpfung hinzufügen. Definieren Sie die Zuordnung zwischen Ihrer Ansicht und Tabelle und legen Sie die Kardinalität richtig fest.

In EF 1 müssen Sie die FK-Felder aus dem Clientschema entfernen, indem Sie sie im Designer auswählen und Löschen drücken. Dies liegt daran, dass Sie in EF 1 dasselbe Feld nicht sowohl einer Assoziation als auch einer Skalareigenschaft zuordnen können. In EF 4 können Sie die FK-Felder beibehalten, wenn Sie FK-Zuordnungen verwenden, oder Sie können unabhängige Zuordnungen verwenden, die sich wie EF 1 verhalten.

+0

sehr geschätzt. – Sako73

+3

Sehr hilfreich, in meinem Fall musste ich auch die Referential Constraint in den Eigenschaften der Assoziation (EF 5) setzen. –

Verwandte Themen