0
我有一个传递一个或多个提供程序代码的WebGet。对于每个供应商代码,我需要为其所在代码存在的所有住院患者返回患者列表,作为接受,出席或咨询供应商。在WCF数据服务中构建LINQ查询的Where子句
应该是:
WHERE (inpatient = 1)
AND (dischargeddate IS NULL)
AND ((attending = 'SMITH') OR (admitting = 'SMITH') OR (consulting = 'SMITH'))
的 “for” 循环不附加条件的where子句。我究竟做错了什么??
感谢
[WebGet]
public IQueryable<vw_patient> GetInpatients(string providercode, string searchtext)
{
string[] providers = providercode.Split(new char[] { '|' });
if (string.IsNullOrEmpty(searchtext))
{
var results = (from p in this.CurrentDataSource.vw_patient
where p.inpatient.Equals(true)
&& p.dischargedate.Equals(null)
select p);
foreach (string provider in providers)
{
results = results.Where<vw_patient>(e => e.attending.Equals(provider) || e.admitting.Equals(provider) || e.consulting.Contains(provider));
}
results.OrderBy(p => p.roomloc).ThenByDescending(p => p.patientname);
return results;
}
else
{
var results = (from p in this.CurrentDataSource.vw_patient
where p.patientname.StartsWith(searchtext)
&& p.inpatient.Equals(true)
&& p.dischargedate.Equals(null)
select p);
foreach (string provider in providers)
{
results = results.Where<vw_patient>(e => e.attending.Equals(provider) || e.admitting.Equals(provider) || e.consulting.Contains(provider));
}
results.OrderBy(p => p.roomloc).ThenByDescending(p => p.patientname);
return results;
}
}
谢谢邓肯......这很好! 我假设这是返回结果的方式: return fulllist.AsQueryable(); –
user680891
2011-05-11 12:49:39
@ user680891:没有probs。返回看起来也不错。 – 2011-05-11 12:54:46