我有一个关于在 asp/mvc 中合并来自 2 个存储库的数据的问题。
我有 2 个存储库,例如 UserRepo 和 InvoiceRepo。
现在我想创建一个包含用户数据和发票数据的查询(例如:所有用户的地址和数据来自上一张发票)。
这样做的最佳方法是什么?
我有一个关于在 asp/mvc 中合并来自 2 个存储库的数据的问题。
我有 2 个存储库,例如 UserRepo 和 InvoiceRepo。
现在我想创建一个包含用户数据和发票数据的查询(例如:所有用户的地址和数据来自上一张发票)。
这样做的最佳方法是什么?
InvoiceRepo
您可以使用执行连接并返回您需要的所有数据的方法来扩展现有存储库(可能)。
InvoiceRepo.GetUserInvoices(userId)
听起来是个明智的选择。
这是存储库模式的一个常见问题 - 为您的方法找到合适的存储库。
为什么你必须一通电话?
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);
那将是两个 SELECT 并且必须更容易理解。