Warum erstellt das Entitätsframework bei der Auswahl aus einer Ansicht eine Unterabfrage?

8

Ich habe eine Tabelle namens PersonTable mit den Spalten: PersonId, RestarauntId, Age

Ich habe eine Ansicht namens PersonView , die folgendes tut:

%Vor%

Wenn ich etwas so einfaches mache wie:

%Vor%

Das obige gibt 1 Datensatz zurück und ich würde erwarten, dass die MySql-Abfrage lautet:

%Vor%

ABER erzeugt stattdessen Folgendes:

%Vor%

Es spielt also keine Rolle, was ich an die where-Klausel übergebe, es werden immer alle Datensätze zuerst in einer Unterauswahl angezeigt. Das passiert nur, wenn ich die Ansicht abfrage, die ich brauche, aber ich war neugierig, warum es die obige Abfrage erzeugt anstatt der, die ich erwarten würde. Ist dies ein Entity Framework-Problem oder ein MySql-Problem?

    
Xaisoft 19.07.2013, 17:13
quelle

1 Antwort

1

MySql View lässt in der verwendeten Abfrage keine dynamischen Filter zu.
Es gibt einige Hacks, um dies zu erreichen. Vom Entwurf her sind MySQL-Ansichten jedoch nicht dynamisch. Views führen immer die eigentliche Abfrage aus, und nur bei diesem Ergebnis kann eine weitere Filterung durchgeführt werden, wie Sie in Ihrem Beispiel erwähnt haben. Weitere Informationen finden Sie unter Hier

    
Akhil 24.07.2013 18:12
quelle