Return IEnumerable<Object> 而不是 IEnumerable<IEnumerable><Object>
Return IEnumerable<Object> rather IEnumerable<IEnumerable><Object>
我需要连接两个 table 并使用 linq 从其中一个 table 获取数据。
连接工作正常,但它 returns IEnumerable <$IEnumerable><$Ojbect> 我需要 IEnumerable<$Object>
代码如下:
(
from med in meds
join pres in prescriptions
on med.Code equals pres.Code into latstPrescrptions
let allPrescriptions = latstPrescrptions.Where(
pres => pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
)
select allPrescriptions
);
谢谢
一般来说,当您想要“展平”一个集合时,SelectMany
就是您正在寻找的结构。
在 LINQ 查询语法中,这是通过多个 from
子句完成的:
from med in meds
join pres in prescriptions
on med.Code equals pres.Code into latstPrescrptions
let allPrescriptions = latstPrescrptions.Where(
pres => pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
)
from prescription in allPrescriptions
select prescription
或者,更简单地说:
from med in meds
join pres in prescriptions
on med.Code equals pres.Code into latstPrescrptions
from prescription in latstPrescrptions.Where(
pres => pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
)
更仔细地查看您的查询,您可能只是避免使用 into
子句并依赖 join
输出来为您提供所需的内容。
from med in meds
join pres in prescriptions
on med.Code equals pres.Code
where pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
select pres
我需要连接两个 table 并使用 linq 从其中一个 table 获取数据。
连接工作正常,但它 returns IEnumerable <$IEnumerable><$Ojbect> 我需要 IEnumerable<$Object>
代码如下:
(
from med in meds
join pres in prescriptions
on med.Code equals pres.Code into latstPrescrptions
let allPrescriptions = latstPrescrptions.Where(
pres => pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
)
select allPrescriptions
);
谢谢
一般来说,当您想要“展平”一个集合时,SelectMany
就是您正在寻找的结构。
在 LINQ 查询语法中,这是通过多个 from
子句完成的:
from med in meds
join pres in prescriptions
on med.Code equals pres.Code into latstPrescrptions
let allPrescriptions = latstPrescrptions.Where(
pres => pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
)
from prescription in allPrescriptions
select prescription
或者,更简单地说:
from med in meds
join pres in prescriptions
on med.Code equals pres.Code into latstPrescrptions
from prescription in latstPrescrptions.Where(
pres => pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
)
更仔细地查看您的查询,您可能只是避免使用 into
子句并依赖 join
输出来为您提供所需的内容。
from med in meds
join pres in prescriptions
on med.Code equals pres.Code
where pres.PatientId == patientId
&& (pres.PrescriptionEndDate > DateTime.Now)
|| pres.PrescriptionEndDate == null
select pres