Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ左连接数据集和分组依据_C#_Linq_Lambda_Outer Join - Fatal编程技术网

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

我的数据是这样的

  • 平机会-个案编号、入院、出院
  • 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<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};
    
  • 我需要从这些数据中创建XML

    <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之前?