【问题标题】:Convert a n-m relationship join query to Linq将 n-m 关系连接查询转换为 Linq
【发布时间】:2014-12-18 02:52:57
【问题描述】:

我有下面三个表:

table patient 
{ NID *pk
  Name
  Family
 }

 table disease 
 {
   ICD_code *pk
   Title
 }

 table_patient_disease *-*
 {
  ID
  Fk_ICDcode
  FK_Patient
 }

这是患者和疾病之间的 n-m 关系。 我想写一个查询来选择病人和他们的疾病 它需要加入linq

Sql 纯查询是:

SELECT     
  dbo.Table_Disease.*, 
  dbo.Table_PatDis.*, 
  dbo.Table_Patient.*
FROM         
  dbo.Table_Disease 
 INNER JOIN dbo.Table_PatDis ON dbo.Table_Disease.ICD_code = dbo.Table_PatDis.FK_Disease
 INNER JOIN dbo.Table_Patient ON dbo.Table_PatDis.FK_PAtient = dbo.Table_Patient.NID

什么是相同的 Linq 语句?

【问题讨论】:

    标签: c# linq join


    【解决方案1】:
    SELECT     
      dbo.Table_Disease.*, 
      dbo.Table_PatDis.*, 
      dbo.Table_Patient.*
    FROM         
      dbo.Table_Disease 
     INNER JOIN dbo.Table_PatDis ON dbo.Table_Disease.ICD_code = dbo.Table_PatDis.FK_Disease
     INNER JOIN dbo.Table_Patient ON dbo.Table_PatDis.FK_PAtient = dbo.Table_Patient.NID
    

    会变成:

    var results = (from d in DbContext.Table_Disease 
                   join pd in DbContext.Table_PatDis on d.ICD_Code equals pd.FK_Disease
                   join p in DbContext.Table_Patient on pd.FK_PAtient equals p.NID
                  select new {d, pd, p});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多