Laden...

Entity Framework Tabellenwertfunktion

Erstellt von itstata vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.649 Views
I
itstata Themenstarter:in
302 Beiträge seit 2008
vor 12 Jahren
Entity Framework Tabellenwertfunktion

verwendetes Datenbanksystem: SQL 2008, EF4

Hallo,

ich will bei einem bestehenden System eine bestimmte Tabellenwertfunktion aus dem SQL-Server aufrufen. Da ich bereits für alle anderen Datenzugriffe das Entityframework verwende, würde ich das natürlich auch gerne dafür verwenden. Das dies mit Prozeduren geht ist ja bekannt, aber wie verhält es sich mit Funktionen? Google hat mir bisher nur irre Hacks mit manuellem Editieren in der SSDL gebracht.

Der Datencontext hat ja eine Funktion "ExcecuteFunction". Allerdings bekomme ich hier eine Ausnahme:> Fehlermeldung:

FunctionImport 'x' konnte nicht in Container 'y' gefunden werden.

Laut Hilfe muss hier nämlich die Funktion noch im Entity-Model definiert werden.

Führt eine gespeicherte Prozedur oder eine Funktion, die in der Datenquelle definiert ist und im konzeptionellen Modell zugeordnet wird, mit den angegebenen Parametern aus. Gibt ein typisiertes ObjectResult<T> zurück.

Wenn das so wirklich stimmt muss ich wohl oder übel normale SQL-Commands verwenden.

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo itstata,

es geht mit dem EF nur so wie in Table-Valued Function Support beschrieben. Also manuelles Editieren.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

I
itstata Themenstarter:in
302 Beiträge seit 2008
vor 12 Jahren

Oje, dann doch lieber old school sql. Ich selbst könnte damit leben, aber ich bezweifel, dass ein zweiter Entwickler diese Magic versteht. Zumal im Designer davon nichts zu sehen ist.

6.911 Beiträge seit 2009
vor 12 Jahren

Hallo itstata,

sehe ich auch so. Das haben sie sehr suboptimal gelöst.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"