Penyelesaian masalah "Contoh ObjectContext telah dilupuskan" Pengecualian dalam Rangka Entiti
menghadapi ralat "Contoh ObjectContext telah dilupuskan dan tidak lagi boleh digunakan untuk operasi yang memerlukan sambungan"? Panduan ini menyediakan penyelesaian.
punca akar:
Mekanisme pemunggahan malas rangka kerja entiti sering menjadi penyebabnya. Dengan pemuatan malas diaktifkan, sifat navigasi ditandakan sebagai maya, yang membolehkan EF membuat kelas proksi yang mengendalikan pemuatan data berkaitan dengan permintaan.
Memahami masalah:
mari kita gambarkan dengan contoh:
<code class="language-csharp">public class MemberLoan { public string LoandProviderCode { get; set; } public virtual Membership Membership { get; set; } }</code>
. Proksi ini mengekalkan rujukan MemberLoan
untuk memuatkan harta DbContext
. Isu ini timbul apabila: Membership
using
digunakan. DbContext
using
dilupuskan sebelum harta yang dimuatkan malas diakses, yang membawa kepada "ObjectDisposedException". DbContext
Penyelesaian: Memuatkan bersemangat
Penyelesaian pilihan adalah pemuatan yang bersemangat. Daripada bergantung pada pemuatan malas, pramuatkan sifat navigasi yang diperlukan:
<code class="language-csharp">IQueryable<MemberLoan> query = db.MemberLoans.Include(m => m.Membership);</code>
Bacaan Lanjut:
untuk menyelam yang lebih mendalam, berunding dengan dokumentasi Microsoft mengenai entiti yang berkaitan dengan pemuatan:https://www.php.cn/link/7515989d1c2f94c0cf8c5e4aefd3d12b
Atas ialah kandungan terperinci Bagaimana untuk membetulkan pengecualian 'ObjectContext telah dilupuskan' dalam rangka entiti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!