Es ist nicht direkt möglich. Wenn Sie die Entity auf ResultTableTemplate
abbilden, codieren Sie den Namen der Tabelle für diese Entität fest. Entitäten können nur einmal (pro Modell) zugeordnet werden. Daher führt jede EF-Abfrage für diese Entität zur Laufzeit immer zur Abfrage in ResultTableTemplate
table.
Die einzige Möglichkeit zum Ändern ist das Ändern der Zuordnungsdatei (SSDL) zur Laufzeit, was ziemlich hässlich ist, da Sie die XML-Datei ändern und neu laden müssen. Sie müssen MetadataWorkspace
jedes Mal manuell erstellen, wenn Sie die Datei ändern. Das Erstellen von MetadataWorkspace
ist einer der leistungsintensivsten Vorgänge in EF. Im normalen Lauf wird MetadataWorkspace
nur einmal pro Anwendungslauf erstellt.
Es gibt eine einfache Problemumgehung. Sie kennen den Tabellennamen und kennen die Tabellenstruktur - sie ist behoben. Verwenden Sie also direktes SQL und verwenden Sie EF, um das Ergebnis in Ihrer zugeordneten Entitätsklasse zu materialisieren:
%Vor%Der Nachteil ist, dass Sie Linq bei diesem Ansatz nicht verwenden können, aber Ihre Anforderung ist nicht sehr gut für EF geeignet.