具有条件选择的LINQ语句来自表

时间:2015-10-20 16:31:55

标签: linq

我是linq的新手,所以如果这是一个愚蠢的问题,我会事先道歉。我继承了以下查询,并且它没有产生正确的结果以便修复它我必须了解它在做什么。 这是查询,如果有人可以向我解释它正在做什么(也可能修复它),将非常感激。

/**
 * @ORM\Column(type="integer")
 */
protected $id;

更新 我希望以下查询在LINQ中编写,如果你们其中一个人告诉我上面的LINQ查询有什么问题,那就太棒了。

从tblDVPTest中选择* tblDVPTest.DVPTestID = tblDVPPhase.DVPTestID上的内连接tblDVPPhase 其中dvpid = 2176和tblDVPPhase.DVPMasterPhaseID = 255 这是两个条件

从tblDVPTest中选择* tblDVPTest.DVPTestID = tblDVPPhase.DVPTestID上的内连接tblDVPPhase tblDVPPhase.DVPPhaseID = tblDVPVariant.DVPPhaseID的内连接tblDVPVariant 其中dvpid = 2176和tblDVPPhase.DVPMasterPhaseID = 255和tblDVPVariant.DVPMasterVariantID = 681

1 个答案:

答案 0 :(得分:0)

正如我从代码中可以理解的那样,您正在使用实体框架与数据库进行交互。以下是一个高级别的解释:

  1. 创建DbContext对象。
  2. 从表格tblDVPTests到表格dvps的{​​{1}}列与变量DVPID的值匹配的变量tblDVPTests中选择所有内容。
  3. 如果可空变量dvpNum不为空,则仅选择来自dvpMasterPhaseId的值,其中引用的表dvps具有列tblDVPPhases值与变量{{1}匹配的所有行价值。将结果存储在DVPMasterPhaseID中。如果变量dvpMasterPhaseId为空,请跳过此步骤。
  4. 如果可空变量dvps不为空,则仅选择来自dvpMasterPhaseId的值,其中引用的表dvpMasterVariantId具有列dvps值与变量{{1}匹配的所有行价值。将结果存储在tblDVPPhases中。如果变量DVPMasterVariantID为空,请跳过此步骤。
  5. 处理DbCOntext对象。
  6. 注意:表dvpMasterVariantIddvps之间存在外键关系。

    首先要解决您的问题,您应该告诉我们您对结果的期望是什么。