[英]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
,您可能希望將Consultant
的GoalCard
導航屬性重命名為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.