Rumah > pembangunan bahagian belakang > C++ > Mengapa Saya Tidak Boleh Menukar Ungkapan Lambda dengan Badan Penyata kepada Pokok Ungkapan dalam Rangka Kerja Entiti?

Mengapa Saya Tidak Boleh Menukar Ungkapan Lambda dengan Badan Penyata kepada Pokok Ungkapan dalam Rangka Kerja Entiti?

Susan Sarandon
Lepaskan: 2025-01-03 11:40:40
asal
757 orang telah melayarinya

Why Can't I Convert a Lambda Expression with a Statement Body to an Expression Tree in Entity Framework?

"Memahami "Ungkapan lambda dengan badan penyata tidak boleh ditukar kepada pokok ungkapan" Ralat dalam EntityFramework"

The "A ungkapan lambda dengan badan pernyataan tidak boleh ditukar kepada pokok ungkapan" ralat berlaku apabila cuba menukar ungkapan lambda dengan pernyataan badan kepada pokok ekspresi. Ralat ini biasanya timbul dalam senario Rangka Kerja Entiti, di mana pertanyaan LINQ digunakan untuk mendapatkan semula data.

Satu sebab yang mungkin untuk ralat ini ialah apabila Linq-To-SQL digunakan, di mana hanya ungkapan mudah boleh digunakan pada yang segera kanan => pengendali. Sebab pengehadan ini ialah ungkapan ini tidak dilaksanakan tetapi diterjemahkan terus kepada pertanyaan SQL.

Sebagai penyelesaian kepada isu ini, faktorkan semula ungkapan lambda untuk mengecualikan badan pernyataan. Sebagai contoh, tulis semula kod berikut:

Obj[] myArray = objects.Select(o =>
{
    var someLocalVar = o.someVar;

    return new Obj() { 
    Var1 = someLocalVar,
    Var2 = o.var2 };
}).ToArray();
Salin selepas log masuk

Kepada yang berikut:

Arr[] myArray = objects.Select(o => new Obj() { 
    Var1 = o.someVar,
    Var2 = o.var2 
}).ToArray();
Salin selepas log masuk

Pengubahsuaian ini mengalih keluar badan pernyataan, membolehkan penukaran ungkapan lambda kepada pepohon ungkapan dan menghapuskan kesilapan itu.

Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Menukar Ungkapan Lambda dengan Badan Penyata kepada Pokok Ungkapan dalam Rangka Kerja Entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan