我正在尝试一个linq语句,其中我有以下四个表
table: plan
id
planname
table: patient
Fields
id, firstname, lastname, site_id
Table: site
id,
sitename
table: plan_patient
id
site_id
patient_id
table: plan_Exclusions
id
patient_id
plan_id
site_id
table: plan_schedule
id
patient_id
plan_id
site_id
我想撤回所有尚未被分配到计划中或被排除在计划之外的患者。
确定患者是否未被分配到计划的原因是,他们是否在排除表中,他们在plan_schedule
表中没有时间表,并且plan_patient
中不存在这些时间表表格。
在存储过程中这很容易做到,但我正在尝试构建它,这样我就不需要执行存储过程来撤回结果。
答案 0 :(得分:0)
这就是我为多个表格找到复杂的
的方法var MyResults =
from hc in context.hcTypes
from hga in context.hgaToGmuTypes
from hq in context.hqToQuota
from qt in context.Types
from dd in context.ddDraws
from dh in context.dhDraws
where hc.Year == dtYear
&& hc.Year == hga.Year
&& hc.code == hga.code
&& hc.Year == hq.Year
&& hc.code == hq.code
&& hq.Id == qt.Id
&& qt.PrefernceCode == "Y"
&& hga.Year == dtYear
&& hga.Code == "Z"
&& hc.code == dd.code
&& dd.Code == dh.Code
&& dh.Year == dtYear
&& dh.Code == "Z"
&& dh.Left == "P"
select new MyClass { Id = hc.Id, Huntcode = hc.Huntcode, GMU = hga.GMUTypeCode }
;
在你的情况下,它会是这样的:
var YourResults =
from pl in plan
from pa in patient
from s = site
from plan_patient
from plan_Exclusions
with the Where statements linking the data
and the Select pulling what you want