0
.Net 4.0 EF 4.0을 사용하고 있습니다.ObjectContext 인스턴스가 삭제되었습니다.
데이터베이스 myentity, mygroup 및 myapplication에 세 개의 테이블이 있습니다. myentity는 1 개 이상의 mygroups에 속할 수 있으며 1 개 이상의 myapplications가 있고 EF에 매핑됩니다. 내가 이름을 얻을 myentity 객체 내 뷰 모델을 작성, 내 MVC의 controller.cs에서
public MyEntity GetByName(string name)
{
var v = Set().Where(x => x.Name == name)
.Include(x => x.MyEntityMyApplications)
.Include(x => x.MyEntityMyGroups);
v.Load();
//v.ToList();
return v.FirstOrDefault();
}
을 : 나는 다음 myentityrepository 클래스는 등의 방법을 공개합니다. 뷰 페이지로 돌아간 후에 위의 오류가 발생했습니다.
[HttpGet]
public ActionResult GetMyentityAjax(string name)
{
MyViewModel uvm = new MyViewModel();
using (IUnitOfWork unitOfWork = new UnitOfWork(new MyentityEntityContextFactory()))
{
Myentity me = _myentityRepository.GetByName(name);
if (me != null)
{
uvm.Name = me.Nme;
...
uvm.MyentityMyApplication = me.MyentityMyApplication.ToList();
uvm.MyentityMygroups = me.MyentityMygroups .ToList();
}
}
return Json(uvm, JsonRequestBehavior.AllowGet); }
//Even turned the lazyloding to false in //MydataModel.designer.cs as below
public MyappEntities() : base("name=MyappEntities", "MyappEntities")
{
//#### CHANGE ME ######
//this.ContextOptions.LazyLoadingEnabled = true;
this.ContextOptions.LazyLoadingEnabled = false;
//#### END #####
OnContextCreated();
}
도와주세요. 세 가지를 모두 변경 한 후