【发布时间】:2020-04-06 07:05:09
【问题描述】:
我们如何使用 dataLoader 实现多对多?
假设我想获取有联系人的公司(一个联系人可以有多个公司)。 我有一个 companyLinks 作为 midde 表(带有 companyId/contactId)。
当一家公司只有 1 个联系人时,我有这个方法:
public async Task<ILookup<Guid, Contact>> GetContactsFromCompanyBatchAsync(IEnumerable<Guid> companyIds)
{
var contacts = _entities.Include(c => c.CompanyLinks).Where(contact => contact.CompanyLinks.Any(cl => companyIds.Contains(cl.CompanyId)));
return contacts.ToLookup(cont => {
var res = cont.CompanyLinks.Any() ? cont.CompanyLinks.ElementAt(0).CompanyId : Guid.Empty;
return res;
});
}
但是,如果联系人拥有超过 1 家公司怎么办?我怎样才能知道正确的 companyId ?
【问题讨论】:
-
这个问题有解决办法吗?下个版本会推出吗?
标签: many-to-many graphql-dotnet