2015-09-05 83 views
0

我正在使用SQL Server。我從清單中得到的表是空的。使用存儲庫和服務。 在我的控制器:MVC 5 EF 6.1.3 System.NullReferenceException

var temp = _courseSvc.ListCourses(); 

庫:

public IQueryable<Course> ListCourses() 
{ 
    return _dbContext.Courses; 
} 

服務:

public IQueryable<Course> ListCourses() 
{ 
    return _courseRepository.ListCourses(); 
} 

使用var temp = _courseSvc.ListCourses();

對象引用,當我在控制器此錯誤未設定至一個對象的實例。

但是,如果將它添加到控制器:

public IQueryable<Course> ListCourses() 
{ 
    return db.Courses; 
} 

而且從ActionResult

var x = ListCourses(); 

稱它爲我沒有得到這個錯誤。在將EF從5升級到6之前,所有工作都在進行! 我知道這個錯誤發生,如果表鍵是空的,我不明白爲什麼它的工作原理直接形成控制器,而不是從服務!

堆棧跟蹤

在WebUI.Controllers.CourseController.Index(字符串searchKW,布爾searchAsSingleKW)在H:\ D_learning \網站2015年\ Websitel -Sep_4 \ HNCLPortal \ WebUI中\ \控制器CourseController.cs: (控制器基礎控件,對象[]) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller,Object [] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext,IDictionary `2

+0

什麼行引發異常?你確定DbContext實例在數據庫調用之前沒有被處置嗎? –

+0

顯示堆棧跟蹤 – Pawel

+0

是不是'_courseSvc'爲空?堆棧跟蹤甚至沒有得到EF ... – Pawel

回答

0

看起來像_courseSvc爲空。堆棧跟蹤顯示您甚至不需要致電EF。