リポジトリ パターンを実装する ASP.NET MVC アプリケーションでは、特定のリポジトリの一般的な焦点にまだ関連している場合、データに関連しないメソッドをリポジトリに配置することが適切かどうかに興味があります。たとえば、ProductImages を追加および削除するためのメソッドを持つ ProductsRepository があるとします。これらの ProductImages は、データベースとローカル ファイル ストアにも部分的に表現されています。ProductImage を削除する必要がある場合は、リポジトリ メソッドを使用してデータベースから行を削除する必要があります。また、そのイメージに関連付けられているファイルをストレージ メディアから削除する必要もあります。IO 操作はリポジトリに属していますか、それともより適切な場所がありますか?
先ほど説明したような状況で私が行っていることの 1 つは、リポジトリに静的メソッドを提供することです。これにより、データベースに保存されているファイル名と事前定義されたディレクトリ パターンを使用して、特定の ProductImage へのパスが提供され、プログラムで生成されます。 . これはリポジトリの使用目的外ですか?
編集
そのような操作がリポジトリに属していない場合、そのような操作は MVC パターンのどこに配置する必要がありますか? 必要に応じてリポジトリを呼び出し、コントローラから静的に呼び出すことができる、コントローラとリポジトリの間に別のレイヤーを配置することは理にかなっているように思えます。