asp / mvc の 2 つのリポジトリからのデータの結合について質問があります。
たとえば、UserRepo と InvoiceRepo の 2 つのリポジトリがあります。
ここで、ユーザー データと請求書データを含むクエリを作成したいと考えています (例: 最後の請求書の住所とデータを持つすべてのユーザー)。
これを行うための最良の方法は何ですか?
asp / mvc の 2 つのリポジトリからのデータの結合について質問があります。
たとえば、UserRepo と InvoiceRepo の 2 つのリポジトリがあります。
ここで、ユーザー データと請求書データを含むクエリを作成したいと考えています (例: 最後の請求書の住所とデータを持つすべてのユーザー)。
これを行うための最良の方法は何ですか?
InvoiceRepo
結合を実行して必要なすべてのデータを返すメソッドを使用して、既存のリポジトリ (おそらく) を拡張できます。
InvoiceRepo.GetUserInvoices(userId)
賢明な選択肢のように聞こえます。
これはリポジトリ パターンの一般的な問題です。メソッドの適切なリポジトリを見つけます。
なぜ1回の電話でそれをしなければならないのですか?
var users = userRepos.GetUsers();
var lastInvoices = invoiceRepos.GetLastInvoiceForAllUsers();
var usersWithInvoices = (from x in users
select new UserWithInvoice(x, lastInvoices.First(inv => inv.userId = x.Id);
これは 2 つの SELECT であり、理解しやすいはずです。