举一个非常简单的例子,A公司有男性用户。我有两个表,公司和用户。 User表具有外键CompanyId。假设我必须填写公司及其所有用户的列表,我将如何使用datareader进行映射?
我需要多个select语句吗?一个是让所有公司都需要,另一个是让所有公司的所有用户都能获得?下面的伪代码。
select companies;
Loop through all companies returned and create a list of companyids for where in.
select users where in (companyid list created above)
attach users to selected companies
逻辑上,完成此任务的最佳方法是什么。
答案 0 :(得分:0)
如果您不想使用ORM(这会使这更容易),那么您想要执行JOIN语句,然后使用Dictionary
将每个公司的主键存储为字典的键,然后是Company
实例作为字典的值,它将包含User
个实例的集合。
E.g。
SELECT [column list] FROM Companies c INNER JOIN Users u ON u.CompanyId = c.Id;