2

私は最初の設計上の決定に疑問を抱き始めました。どこを見ても、アクセスレイヤーをMVCプロジェクトにダンプするだけのMVCに関するチュートリアルがあります。(これは私が学んだすべてに反します)

私のデザインのUML図

  • BarRepo:APIへのアクセスを処理します。
  • FooRepo:データベースへのアクセスを処理します(EFを使用)。
  • FooBarHandler:2つのリポジトリからのデータをコントローラーに役立つデータに結合します。
  • コントローラー:コントローラー、特別なものはありません。

写真でわかるように、私は各部分を独自のプロジェクトに分割し、緩い結合を取得しようとしました。そのため、データベースレイヤーなどからEntityFrameworkクラスを送信しません。しかし、私は少し漬物に出くわしました。フェッチされるデータ量が非常に多くなり、フロントエンドで目立つようになったため、ページングを導入する必要がありました。だから私はこのチュートリアルに従いました。私の「問題」は、MVC、Logic、およびDatabaseプロジェクトが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 に答える