Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SqlFunction falha ao abrir a conexão de contexto apesar de DataAccessKind.Read presente


O problema é o seguinte:

  1. SQLCLR não permite nenhum acesso a dados dentro de TestFillRow

  2. 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 de TestFillRow ... 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.