O problema é o seguinte:
-
SQLCLR não permite nenhum acesso a dados dentro de TestFillRow
-
Mesmo que "pareça" que seu TestFillRow não acesse dados, a maneira como o compilador traduz o código com instruções "yield" é adiando sua execução até a primeira chamada .MoveNext() para o iterador. Portanto, a seguinte afirmação:
using (SqlConnection con = new SqlConnection("context connection=true"))
é executado dentro deTestFillRow
... o que é ilegal.
Não use retorno de rendimento; em vez disso, carregue o resultado inteiro em uma
List<>
e retorne a lista no final da Função UD.