Проблемът е следният:
-
SQLCLR не позволява никакъв достъп до данни вътре в TestFillRow
-
Въпреки че "изглежда", че вашият TestFillRow няма достъп до данни, начинът, по който компилаторът превежда кода с изрази "yield", всъщност отлага изпълнението му до първото извикване .MoveNext() към итератора. Следователно следното твърдение:
using (SqlConnection con = new SqlConnection("context connection=true"))
се изпълнява вътре в
TestFillRow
... което е незаконно.
Не използвайте връщане на доходност; вместо това заредете целия резултат в List<>
и връща списъка в края на UD функцията.