it-swarm.com.de

Views und Entity Framework

Ich habe in meiner Datenbank eine Ansicht erstellt, die ich in mein Entitätsmodell aufnehmen möchte. Wenn ich jedoch versuche, das Entitätsmodell über VS 2008 zu aktualisieren, weist eine Warnmeldung darauf hin, dass die TABLE OR VIEW, die ich hinzuzufügen, keinen Primärschlüssel hat. 

Es scheint, dass dieses Modell ein Schlüsselfeld enthalten muss, um dem Modell eine Ansicht hinzuzufügen. Wie kann ich diese Ansicht zu meinem Modell hinzufügen, wenn Ansichten kein Schlüsselfeld haben dürfen, zumindest in Firebird, das von mir verwendete DBMRS ist.

Irgendeine Idee, wie man das löst?

21
cepriego

Hier gibt es eine großartige Antwort: Entity Framework und SQL Server View (siehe akzeptierte Antwort: https://stackoverflow.com/a/2715299/53510 .)

EF leitet einen PK für Ansichten ein, indem alle nicht nullfähigen Felder kombiniert werden. Sie können ISNULL und NULLIF verwenden, um die Nullfähigkeit von Ansichtsspalten zu ändern, sodass EF die gewünschte PK auswählen muss.

11
Greg Jackman

Es gibt keine Schlüssel in Firebird-Ansichten. Legen Sie stattdessen ein (oder mehrere) Felder mit dem folgenden Befehl als "nicht null" fest:

update RDB$RELATION_FIELDS set RDB$NULL_FLAG = 1 where (RDB$FIELD_NAME = 'A_FIELD') and (RDB$RELATION_NAME = 'A_VIEW')

Importieren Sie anschließend die Datenbank erneut in das Entity Framework.

0