簡體   English   中英

Linq語句具有兩個select和where條件

[英]Linq statement with two select's and where condition

我在SQL上有此linq,我只想用連接葯物返回一種疾病。 但是,這樣做是在使所有疾病都退回並且僅填充符合where條件的葯物。

我需要先選擇葯物然后再選擇疾病才能起作用嗎?

    public List<Model.Disease> GetDiseaseById(Guid DiseaseId)
    {
       var Disease = (from Diseases in db.Diseases
                        join dr in db.DrugDiseases on  equals d.DrugId on dr.DrugId 
                        join rdDiseases on rdDiseases.Diseases equals rd.DiseaseId on dr.DiseaseId
                      where (aDrug.DiseaseId == DiseaseId)
                      select new Model.Disease 
                    {
                       DiseaseId = rdDiseases.DiseaseId,
                       DiseaseName = rdDiseases.DiseaseName,
                       drug = (from d in db.Drug
                                join dr1 in db.DrugDiseases on  equals d.DrugId on dr1.DrugId 
                                join rd1Diseases on rdDiseases.Diseases equals rd.DiseaseId on dr1.DiseaseId
                               where (Diseases.DiseaseId == d.DiseaseId && d.DiseaseId == DiseaseId)
                               select new drug
                            {
                              DrugId = d.drug,
                              DrugName = d.drugName}).OrderBy(m => m.DrugName).ToList(),
                   }).OrderBy(d => d.DiseaseName).ToList().FirstOrDefault();
       return Disease;                       
     }

根據上面的評論,您只需要一個聯接,這應該很簡單。 您應該大致了解LINQ和LINQ中的Joins 另外,由於您只在尋找一種疾病,所以為什么要返回清單? 下面的代碼應該工作:

public Model.Disease GetDiseaseById(Guid DiseaseId)
{
   return (from Disease in db.Diseases
               where Disease.DiseaseId == DiseaseId
               orderby Disease.DiseaseName
               join d in db.Drug on Disease.DiseaseId equals d.DiseasesId
               select new Model.Disease
               {
                   DiseaseId = Disease.DiseaseId
                   DiseaseName = Disease.DiseaseName
                   drug = new { DrugId = d.DrugId, DrugName = d.DrugName }
               }).FirstOrDefault();
}

暫無
暫無

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

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