Rumah > pembangunan bahagian belakang > C++ > Mengapa Rangka Kerja Entiti Melemparkan 'Ungkapan Lambda dengan Badan Penyata Tidak Boleh Ditukar kepada Pokok Ungkapan'?

Mengapa Rangka Kerja Entiti Melemparkan 'Ungkapan Lambda dengan Badan Penyata Tidak Boleh Ditukar kepada Pokok Ungkapan'?

Susan Sarandon
Lepaskan: 2024-12-29 08:01:10
asal
164 orang telah melayarinya

Why Does Entity Framework Throw

Ralat Pengkompil: "Ungkapan Lambda dengan Badan Penyata Tidak Boleh Ditukar kepada Pokok Ungkapan"

Apabila bekerja dengan EntityFramework, anda mungkin menghadapi ralat menyatakan, "Ungkapan lambda dengan badan pernyataan tidak boleh ditukar kepada pokok ungkapan." Ralat ini berlaku apabila anda cuba menggunakan ungkapan lambda dengan pernyataan blok (juga dikenali sebagai lambda pernyataan) dalam konteks yang hanya lambda ungkapan dibenarkan.

Isunya

Seperti yang dicadangkan oleh mesej ralat, EntityFramework mengharapkan ungkapan lambdas, yang merupakan ungkapan ringkas tanpa sebarang pernyataan blok. Dalam contoh yang disediakan, ungkapan lambda:

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

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

mengandungi pernyataan blok, menjadikannya lambda pernyataan. EntityFramework tidak boleh menukar ungkapan ini kepada bentuk yang sesuai untuk melaksanakan pertanyaan pangkalan data.

Penyelesaian

Untuk menyelesaikan ralat, faktorkan semula ungkapan lambda anda untuk menggunakan ungkapan lambda. Lambdas ungkapan ialah ungkapan satu baris yang secara langsung mengembalikan nilai tanpa menggunakan sebarang pernyataan tambahan. Dalam kes ini, anda boleh menulis semula lambda seperti berikut:

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

Ungkapan lambda ini menghapuskan pernyataan blok dan terus mengembalikan objek Obj baharu. Borang ini serasi dengan jangkaan pokok ekspresi EntityFramework dan akan menyelesaikan ralat kompilasi.

Atas ialah kandungan terperinci Mengapa Rangka Kerja Entiti Melemparkan 'Ungkapan Lambda dengan Badan Penyata Tidak Boleh Ditukar kepada Pokok Ungkapan'?. 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