El problema es el siguiente:
-
SQLCLR no permite ningún acceso a datos dentro de TestFillRow
-
A pesar de que "parece" que su TestFillRow no accede a los datos, la forma en que el compilador traduce el código con declaraciones de "rendimiento" es aplazando su ejecución hasta la primera llamada .MoveNext() al iterador. Por lo tanto, la siguiente declaración:
using (SqlConnection con = new SqlConnection("context connection=true"))
se ejecuta dentro de
TestFillRow
... lo cual es ilegal.
No utilice rendimiento de rendimiento; en su lugar, cargue el resultado completo en una List<>
y devolver la lista al final de la Función UD.