【发布时间】:2011-07-22 12:42:56
【问题描述】:
如果以前有人问过这个问题,请原谅我,但我不确定我要问的究竟是什么,这使得搜索变得困难。
我目前有以下 LINQ 查询(使用 linq 到实体):
results = (from r in query
select new PatientReport
{
Report = r,
Patient = (from patient in database.PatientSet
where patient.IsActive && patient.Account == r.Account
select patient).FirstOrDefault()
}).ToList();
现在这很好用,linq-to-entities 会从中生成一个连接查询,而且一切都很好。但是,我注意到在我的代码的其他几个部分中,我有以下内容:
(from patient in database.PatientSet
where patient.IsActive && patient.Account == r.Account
select patient).FirstOrDefault()
现在,我的问题是: 是否有可能拥有与第一个 sn-p 行为相同但看起来像这样的代码:
results = (from r in query
select new PatientReport
{
Report = r,
Patient = database.GetActivePatient(r.Account)
}).ToList();
并且在 Database 类中(或者可能在 Patient 中,或者作为扩展方法),有一个函数可以组装以下查询(显然不执行它,因为它不能作为其他的一部分运行)查询):
public xx GetActivePatient(string account)
{
return (from patient in database.PatientSet
where patient.IsActive && patient.Account == r.Account
select patient).FirstOrDefault()
}
虽然我知道 GetActivePatient 的签名可能会非常多毛并且充满 IQueryable 或 IExpression 等。
实际上,我正在尝试创建一个函数来创建一个查询,该查询可用作其他查询的一部分。
感谢任何帮助(即使是“不,这是不可能的”)。谢谢。
【问题讨论】:
标签: c# linq linq-to-entities