Masalahnya adalah sebagai berikut:
-
SQLCLR tidak mengizinkan akses data apa pun di dalam TestFillRow
-
Meskipun "tampaknya" TestFillRow Anda tidak mengakses data, cara kompiler menerjemahkan kode dengan pernyataan "hasil" adalah dengan benar-benar menunda eksekusi hingga panggilan .MoveNext() pertama ke iterator. Oleh karena itu pernyataan berikut:
using (SqlConnection con = new SqlConnection("context connection=true"))
dieksekusi di dalam
TestFillRow
... yang ilegal.
Jangan gunakan pengembalian hasil; alih-alih memuat seluruh hasil ke List<>
dan kembalikan daftar di akhir Fungsi UD.