asp.net-mvcmodel-view-controllerrepositoryrepository-patternrepository-design

How to combine data from 2 repositories


I have a question concerning combine datas from 2 repositorys in asp / mvc.

I have 2 repositories, for example, UserRepo and InvoiceRepo.

Now I want to create a query that contains user data and invoice data (for example: All users with address and data from the last invoice).

What is best way for doing this?


Solution

  • Why do you have to do it with one call?

    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);
    

    That will be two SELECTs and must be easier to understand.