Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menyelesaikan 'Objek entiti tidak boleh dirujuk oleh berbilang contoh IEntityChangeTracker' dalam Rangka Kerja Entiti 4.1?
Menyelesaikan Masalah Konflik Rujukan Objek Entiti dalam Rangka Kerja Entiti 4.1
Menyimpan entiti Employee
yang dipautkan kepada entiti City
dalam Rangka Kerja Entiti 4.1 kadangkala boleh membuang pengecualian: "Objek entiti tidak boleh dirujuk oleh berbilang kejadian IEntityChangeTracker." Ini biasanya berlaku apabila menambah entiti berkaitan.
Masalahnya berpunca daripada cara kelas EmployeeService
dan CityService
mengurus konteksnya. Baris payrollDAO.AddToEmployee(e1);
dalam EmployeeService
adalah puncanya. Di sini, e1
(entiti Employee
) ditambahkan pada konteks yang sudah memegang rujukan kepada city1
(entiti City
yang dipautkan). Ini mewujudkan konflik kerana entiti tidak boleh dilampirkan pada berbilang konteks serentak.
Penyelesaian adalah untuk memastikan kedua-dua perkhidmatan berkongsi konteks yang sama. Ini boleh dilakukan dengan dua cara:
1. Suntikan Ketergantungan: Suntikan konteks ke dalam pembina perkhidmatan:
<code class="language-csharp">EmployeeService es = new EmployeeService(context); CityService cs = new CityService(context);</code>
Ini memastikan kedua-dua perkhidmatan beroperasi dalam konteks yang sama, mengelakkan konflik.
2. Perkhidmatan Disatukan: Buat satu perkhidmatan, contohnya, EmployeeCityService
, untuk mengurus kedua-dua entiti Employee
dan City
. Perkhidmatan tunggal ini akan menggunakan konteks tunggal, menghapuskan kemungkinan pertembungan konteks. Pendekatan ini menggalakkan integriti data yang lebih baik dan memudahkan pengurusan konteks.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan 'Objek entiti tidak boleh dirujuk oleh berbilang contoh IEntityChangeTracker' dalam Rangka Kerja Entiti 4.1?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!