潜在客户>活动之间存在一对多关系。我的要求是选择一个潜在客户,其中只有一个最近添加的活动(w.r.t. activities.date_created)这是我的代码
public List<DOlead> getInactiveLeads(DateTime Start, DateTime End, DOuser user)
{
List<lead> ObjLeads = new List<lead>();
List<DOlead> ObjLead = new List<DOlead>();
//List<activity> actobj = _Context.activities;
company comobj = _Context.companies.Where(x => x.id == user.company_id).FirstOrDefault();
DateTime inactive = DateTime.Today.AddDays(-Convert.ToDouble(comobj.no_activity));
ObjLead = (from le in _Context.leads
join leadstatus in _Context.leads_status on le.lead_status_id equals leadstatus.id
join act in _Context.activities on le.id equals act.lead_id
where le.is_converted == false && le.date_created < inactive && le.date_created>Start && le.date_created<End
select new DOlead
{
id = le.id,
title = le.title,
is_converted = le.is_converted,
street_address = le.street_address,
}).OrderByDescending(x => x.title).ToList();
return ObjLead;
}
但它提供了与重复潜在客户匹配的数据。请指导我?
您的查询将为潜在顾客的每个活动返回一个项目。因此,如果潜在顾客有 5 个活动,您将获得 5 个项目的返回。 由于您只是使用潜在客户对象的属性构建此 DOlead 对象,因此您将获得看起来像很多重复的内容。
如果您只想查看具有最近活动的潜在顾客,您可能应该从您关注的窗口中的活动列表开始,清除lead_ids列表,然后提取这些潜在顾客。