01/10/2018, 15:19

Vấn đề về convert từ 1 object có thuộc tính virtual ICollection thành json trong asp.net mvc

Giả sử CSDL của em có các bảng SinhVien, MonHoc, DSMonHocCuaSV. với quan hệ nhiều nhiều.
Em sử dụng code first để phát sinh csdl
Và mục tiêu của em là dùng ajax để lấy 1 sinh viên với các môn học của sinh viên đó ra để hiện thị.
Và đây là code của em

            db.Configuration.ProxyCreationEnabled = false;
            if (studentID == null)
                  return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            
            var sinhVien= db.SinhViens.Find(studentID);
            var dsMonHoc= db.DSMonHocCuaSV.Where(m => m.studentID.CompareTo(sinhVien.studentID)==0).ToList();

            if (sinhVien== null)
                return HttpNotFound();
            var jsonSinhVien = Json(new { sinhVien, dsMonHoc } , JsonRequestBehavior.AllowGet);
            return jsonSinhVien ;

Do nó phát sinh ra các proxy ghi đè lên các thuộc tính virtual khiến em không thể convert nguyên 1 thằng sinh viên với thuộc tính danhSachMH bên trong nó thành json được (mò sáng giờ hiểu được vậy à có sai thông cảm ). Nên em phải tắt cái proxy đó đi. Làm như vậy có tốt không, có còn cách nào tốt hơn hay không cần tắt cái proxy không ạ. Mọi người chỉ giáo giúp em

Bài liên quan
0