簡體   English   中英

如何進行LINQ查詢?

[英]How can I make this LINQ query?

我有一個下拉列表,所有顧問都在其中。

這是我用於此LINQ查詢的實體:

在此處輸入圖片說明

我要做的是獲取所有具有設置了Complete_date的目標卡的顧問ID。 我不知道該怎么做。

現在,我有下面的LINQ查詢來獲取所有顧問ID。

public List<Consultant> GetAllConsultantsByID()
{
    var allConsultants = from id in db.Consultant
                         select id;
    return allConsultants.ToList();
}

任何幫助都值得贊賞

提前致謝

更新:

這就是我必須在我的Get Action方法中使用Linq方法的方式:

var consultants = repository.GetAllConsultantsByID();
model.Consultants = new SelectList(consultants, "Id", "Name");

您可以使用Consultant.GoalCard導航屬性和Any擴展方法:

var query = from con in db.Consultant
            where con.GoalCard.Any(card => card.Completed_Date != null)
            select con;
return query.ToList();

Consultant.Goalcard公開所有GoalCards的的Consultant為可查詢的屬性。 因此,您也可以對此執行查詢。 (此示例假定Completed_Date可為空)

注意:看到Consultant可以擁有多個GoalCard ,您可能希望將ConsultantGoalCard導航屬性重命名為GoalCards (為了清楚GoalCards ,可以有多個)。

現在假設Complete_Date的類型為DateTime? ,您可以這樣做:

public IEnumerable<Consultant> GetConsultantIds()
{
     return db.Consultant.Where(c => c.GoalCard != null && c.GoalCard.Completed_Date.HasValue).Select(c => c.Id).AsEnumerable(); 
}

[編輯]

由於GoalCard是一個集合(誤導性的名稱:)),因此您可以執行類似的操作來獲取顧問卡的ID,這些顧問的卡上至少設置了一個完成日期:

public IEnumerable<int> GetConsultantIds()
{
     return db.Consultant.Where(c => c.GoalCard != null && c.GoalCard.Any(card => card.Completed_Date.HasValue)).Select(c => c.Id).AsEnumerable(); 
}

這僅用於ID列表,用於滿足條件的Consultant對象列表:

public IEnumerable<Consultant> GetConsultantIds()
{
     return db.Consultant.Where(c => c.GoalCard != null && c.GoalCard.Any(card => card.Completed_Date.HasValue)).AsEnumerable(); 
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM