2

我开始怀疑我最初的设计决定,因为我到处都能找到关于 MVC 的教程,他们只是将访问层直接转储到 MVC 项目中。(这与我所学到的一切背道而驰)

我的设计的UML图

  • BarRepo:处理对 API 的访问。
  • FooRepo:处理对我的数据库的访问(使用 EF)。
  • FooBarHandler:将来自两个 repos 的数据连接成对控制器有用的数据。
  • 控制器:控制器,没什么特别的。

正如你在图片中看到的那样,我已经将每个部分拆分到自己的项目中,并尝试获得松散耦合。所以我不会将实体框架类发送出数据库层等等。但是,我遇到了一点泡菜。获取的数据量已经变得如此之大,以至于在前端很明显,所以我需要引入分页。所以我跟着这个教程。我的“问题”是现在 MVC、Logic 和数据库项目都依赖于 PagedList,所以事情不再那么整洁和闪亮了。

所以我的问题是你会怎么做?

4

1 回答 1

2

您不需要使用 PagedList,因为您可以自己创建项目的分页列表。查看这个 StackOverflow 问题,了解如何执行此操作的示例。

总结一下:

var pageNum = 3;
var pageSize = 20;

var pagedItems = data.Skip((pageNum - 1) * pageSize).Take(pageSize).ToList();

这样您就不会依赖 PagedList,这将有助于减少设计中的耦合。

于 2013-02-21T19:52:59.130 回答