2013-05-07 4 views
0

Я использую .Net 4.0 EF 4.0.Объект ObjectContext удален

У меня есть три таблицы в базе данных myentity, mygroup и myapplication. myentity может принадлежать от 1 до более mygroups и имеет от 1 до более myapplications и сопоставляется с EF. Я тогда myentityrepository класс предоставляет метод как таковые:

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(); 
    } 

В моем controller.cs MVC, я получаю имя и заполнил мой ViewModel с объектом MyEntity. После возврата на страницу просмотра я получил ошибку выше.

 [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(); 
     } 

Просьба помочь. TIA,
-t

ответ

0

После изменения всех трех this.ContextOptions.LazyLoadingEnabled to false в mydatamodel.designer.cs исключение отсутствует.

Смежные вопросы