使用条件 Linq 查询 asp.net 连接

本文关键字:asp net 连接 查询 Linq 条件 | 更新日期: 2023-09-27 18:37:04

潜在客户>活动之间存在一对多关系。我的要求是选择一个潜在客户,其中只有一个最近添加的活动(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;
    }

但它提供了与重复潜在客户匹配的数据。请指导我?

使用条件 Linq 查询 asp.net 连接

您的查询将为潜在顾客的每个活动返回一个项目。因此,如果潜在顾客有 5 个活动,您将获得 5 个项目的返回。 由于您只是使用潜在客户对象的属性构建此 DOlead 对象,因此您将获得看起来像很多重复的内容。

如果您只想查看具有最近活动的潜在顾客,您可能应该从您关注的窗口中的活动列表开始,清除lead_ids列表,然后提取这些潜在顾客。