データベースから最新の5つの記事を返そうとしているので、インデックスページにあるセカンダリナビゲーションにそれらへのリンクを配置できます。Steven Sandersonの著書での提案に基づいて、MVCプロジェクトを2つのサブプロジェクトに分割しました。MVC部分であるWebUIと、EF4/ドメインモデル部分であるDomainです。
私は、主にEF4にファサードを提供し、モデル検証などの他のタスクを処理することによって、手間のかかる作業を行う基本的なリポジトリを持っています。最後の5つの記事を返す簡単なメソッドがあります。
public List<Article> LastFive()
{
return _siteDB.Articles.OrderByDescending(a => a.LastModified).Take(5).ToList();
}
私の問題は、インデックスページで他の2つの同様の機能を使用して、最新の5つのレビューとサイトニュースアイテムを表示する必要があることです。データベースに何もない場合、それらはArgumentNullExceptionsを返します(これは問題ありません)。代わりに、単純な「記事/レビュー/ニュースは存在しません」というメッセージを表示したいのですが、3つすべてが同じ例外をスローするため、正しいメッセージをキャプチャして、に基づいて正しいメッセージを表示する方法がわかりません。例外をスローしたカテゴリ。
これらのケースでExceptionをサブクラス化する必要があるかどうか、またサブクラス化する場合は、正確にどこにスローするかがわかりません。または、例外がどこから来たのかを判断して、それらを適切に処理できるようにする方法がある場合。