我的控制器功能没有从数据库中获取任何记录

时间:2018-08-28 16:02:25

标签: c# model-view-controller repository-pattern unit-of-work

这是我的控制器和服务层代码

     public class BooksController : Controller
{
   private IBookService _bookService;
    public BooksController(IBookService bookService)
    {
        _bookService = bookService;
    }
    public BooksController()
    {

    }
    // GET: Books
    public ActionResult Index()
    {
        IEnumerable<Book> Books = _bookService.GetBooks().ToList();
        return View(Books);
    }
}

这是我相应的服务层代码的代码。

class BookService:ServiceBase<Book>,IBookService
{

    public BookService(IRepository<Book> repository, IUnitOfWork unitOfWork) : base(repository, unitOfWork)
    {
    }
    public IEnumerable<Book> GetBooksByName(string name)
    {
        return string.IsNullOrEmpty(name) ? UnitOfWork.BookRepository.GetAll() : UnitOfWork.BookRepository.GetAll().Where(c => c.Name == name);
    }
    public IEnumerable<Book> GetBooks()
    {
        return UnitOfWork.BookRepository.GetAll();
    }

}

我没有在视图中获取任何数据,而是说一个空引用异常。我想知道代码是如何工作的,因为我是存储库模式的新手,也不知道问题出在哪里。请在这方面帮助我。

我正在使用带有存储库模式的工作单元。

1 个答案:

答案 0 :(得分:0)

IBookService中有两个构造函数:一个带有Index()参数,另一个没有。

您希望如果有人使用第二个构造函数,您的_bookService应该可以工作吗?您将收到NullReferenceException,因为没有人初始化git config —global alias.a version 。好吧,你收下它。