c# - 将 n-m 关系连接查询转换为 Linq

标签 c# linq join

我有以下三个表格:

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 语句?

最佳答案

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});

关于c# - 将 n-m 关系连接查询转换为 Linq,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27532474/

相关文章:

mysql - 检索最流行视频的查询

PHP/MYSQL Echo 使用join命令

c# - 将字符串从 C# 传递到 XAML 按钮

c# - 如何获取 List<T> 的前一个元素

c# - 如何将项目列表从 View 传递到 Controller (ASP.NET MVC 4)

c# - 如何在 linq 中编写 EF 以包含小写比较

sql - 确认一下,这是一种反加入吗?

c# - 在 Visual Studio Code 中找不到 Xunit 命名空间

c# - WCF 方法发送 POST 而不是 GET

c# - 查找计算机上的总物理内存,.NET core 2.1,c#,Ubuntu