C# LINQ左连接数据集和分组依据
我的数据是这样的C# LINQ左连接数据集和分组依据,c#,linq,lambda,outer-join,C#,Linq,Lambda,Outer Join,我的数据是这样的 平机会-个案编号、入院、出院 PrinDiag-每个EOC一个 其他诊断-每个EOC 0、1或多个 var results = from dtE in ds.Tables["EOC"].AsEnumerable() from dtPD in ds.Tables["PrinDiag"].AsEnumerable() .Where(t => dtE.Field<string>("case_id") == t.Field<str
var results = from dtE in ds.Tables["EOC"].AsEnumerable()
from dtPD in ds.Tables["PrinDiag"].AsEnumerable()
.Where(t => dtE.Field<string>("case_id") == t.Field<string>("case_id") )
.DefaultIfEmpty()
.GroupBy(t => t.Field<string>("case_id"))
from dtOD in ds.Tables["OtherDiag"].AsEnumerable()
.Where(t => dtE.Field<string>("case_id") == t.Field<string>("case_id"))
.DefaultIfEmpty()
.GroupBy(t => t.Field<string>("case_id")).DefaultIfEmpty()
select new { dtE, dtPD, dtOD };
var results=来自ds.Tables[“EOC”].AsEnumerable()中的dtE
来自ds.Tables[“PrinDiag”].AsEnumerable()中的dtPD
其中(t=>dtE.Field(“case\u id”)==t.Field(“case\u id”))
.DefaultIfEmpty()
.GroupBy(t=>t.Field(“case_id”))
从ds.Tables[“OtherDiag”].AsEnumerable()中的dtOD开始
其中(t=>dtE.Field(“case\u id”)==t.Field(“case\u id”))
.DefaultIfEmpty()
.GroupBy(t=>t.Field(“case_id”)).DefaultIfEmpty()
选择新{dtE,dtPD,dtOD};
<eocdate>
<EOC>test</EOC>
<admission>22/06/2013</admission>
<patient>
<facility_patient_id>12345</facility_patient_id>
<first_name>Matthu</first_name>
<last_name>MOmmy</last_name>
</patient>
<assessment>
<newborn_weight />
</assessment>
<principal_diagnosis>
<principal_diagnosis_code>123 </principal_diagnosis_code>
<principal_diagnosis_status>0</principal_diagnosis_status>
</principal_diagnosis>
<other_diagnosis>
<other_diagnosis_code>435 </other_diagnosis_code>
<other_diagnosis_status>0</other_diagnosis_status>
</other_diagnosis>
<other_diagnosis>
<other_diagnosis_code>345 </other_diagnosis_code>
<other_diagnosis_status>0</other_diagnosis_status>
</other_diagnosis>
<other_diagnosis>
<other_diagnosis_code>1231 </other_diagnosis_code>
<other_diagnosis_status>0</other_diagnosis_status>
</other_diagnosis>
</eocdate>
测试
22/06/2013
12345
马图
妈妈
123
0
435
0
345
0
1231
0
我得到“值不能为空。\r\n参数名称:行”
请帮忙
谢谢,哪一行出现错误。当尝试使用XStreamingElement创建XML并保存时。您在此处未显示的代码行中出现错误?您必须在ds.Tables[“OtherDiag”].AsEnumerable()中向我们显示带有错误dude.from dtOD的代码,其中(t=>dtE.Field(“case\u id”)==t.Field(“case\u id”)).DefaultIfEmpty().GroupBy(t=>t.Field(“case\u id”).DefaultIfEmpty()我在这里遇到错误。是否尝试将默认的if空行移到where之前?