2016-03-01 84 views
0

導聯 - >活動之間有一對多的關係。我的要求是選擇一個導致只有一個最近添加的活動(wrt activities.date_created) 這是我的代碼加入條件Linq查詢asp.net

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; 

    } 

但它給出了匹配的數據與重複的線索。 請親引導我?

回答

0

您的查詢是將返回一個項目的每一個活動的領先。因此,如果潛在客戶有5項活動,則會返回5件物品。既然你只是用引線對象的屬性來建立這個DOlead對象,你會得到看起來很多重複的東西。

如果您只想查看最近活動的潛在客戶,您應該從您關心的窗口中的活動列表開始,區分lead_id列表,然後拉取這些潛在客戶。