Ich möchte eine Abfrage mit einem Kreuz in einer benutzerdefinierten Tabelle Wertfunktion in LINQ anwenden. Die SQL wäre wirklich ziemlich einfach, wie unten:LINQ to SQL Kreuz gelten
SELECT *
FROM MyTable mt
CROSS APPLY MyTVF(mt.id)
This Post ein Beispiel einer LINQ-Abfrage gibt, die in den generierten SQL-Ergebnisse, die sowohl ein Quer enthält anwenden und eine äußere gelten aber nur für eine Sub-Abfrage nicht für eine TVF. This Artikel bestätigt, dass LINQ to SQL Kreuz anwenden und äußeren apply-Operatoren für "Beziehungsnavigationen" generieren, aber ich bin mir nicht sicher, was das in diesem Zusammenhang bedeutet. This Post beschreibt ziemlich viel, was ich tun möchte und die Antwort sagt, die einzige Möglichkeit, dies zu tun ist, die SQL-Abfrage in eine gespeicherte Prozedur zu wickeln und dann die SP über LINQ aufrufen. Ich hoffe, dass dies nicht wahr ist, weil ich tatsächlich ein tvf benötige, das auf diese Weise in einer Anwendung in mehreren LINQ-Abfragen verwendet werden kann, so dass "es in eine SP umwandelt" für mich nicht funktionieren würde. Kennt jemand einen Weg, um etwas wie die einfache SQL-Anweisung über LINQ zu bekommen?
keep Im Hinblick darauf ist diese Beziehung zwischen linq und SQL nicht surjektiv, so dass nicht jeder SQL-Befehl über linq interpretiert werden kann. – nothrow