EF tidak mendukung pengimporan prosedur tersimpan yang membuat kumpulan hasil dari:
- Kueri dinamis
- Tabel sementara
Alasannya adalah untuk mengimpor prosedur EF harus menjalankannya . Operasi tersebut bisa berbahaya karena dapat memicu beberapa perubahan dalam database. Karena itu EF menggunakan perintah SQL khusus sebelum menjalankan prosedur tersimpan:
SET FMTONLY ON
Dengan menjalankan perintah ini, prosedur tersimpan hanya akan mengembalikan "metadata" tentang kolom dalam kumpulan hasil dan tidak akan menjalankan logikanya. Tetapi karena logika tidak dijalankan, tidak ada tabel sementara (atau kueri dinamis yang dibangun) sehingga metadata tidak berisi apa pun.
Anda memiliki dua pilihan (kecuali yang memerlukan penulisan ulang prosedur tersimpan Anda untuk tidak menggunakan fitur ini):
- Tentukan tipe kompleks yang dikembalikan secara manual (saya kira itu akan berhasil)
- Gunakan peretasan dan hanya untuk menambahkan prosedur tersimpan, letakkan di awal
SET FMTONLY OFF
. Ini akan memungkinkan sisa kode SP Anda untuk dieksekusi dengan cara normal. Pastikan SP Anda tidak mengubah data apa pun karena modifikasi ini akan dijalankan selama impor! Setelah impor berhasil, hapus peretasan itu.