Il problema è il seguente:
-
SQLCLR non consente alcun accesso ai dati all'interno di TestFillRow
-
Anche se "sembra" che TestFillRow non acceda ai dati, il modo in cui il compilatore traduce il codice con le istruzioni "yield" è in realtà rinviando l'esecuzione fino alla prima chiamata .MoveNext() all'iteratore. Pertanto la seguente affermazione:
using (SqlConnection con = new SqlConnection("context connection=true"))
viene eseguito all'interno di
TestFillRow
... che è illegale.
Non utilizzare il rendimento del rendimento; carica invece l'intero risultato in un List<>
e restituisce l'elenco alla fine della funzione UD.