Das Problem ist folgendes:
-
SQLCLR erlaubt keinen Datenzugriff innerhalb von TestFillRow
-
Auch wenn es so aussieht, als ob Ihr TestFillRow nicht auf Daten zugreift, übersetzt der Compiler Code mit "yield"-Anweisungen, indem er seine Ausführung tatsächlich bis zum ersten Aufruf von .MoveNext() an den Iterator verzögert. Daher folgende Aussage:
using (SqlConnection con = new SqlConnection("context connection=true"))
wird innerhalb von
TestFillRow
ausgeführt ... was illegal ist.
Yield return nicht verwenden; Laden Sie stattdessen das gesamte Ergebnis in eine List<>
und die Liste am Ende der UD-Funktion zurückgeben.