我是新來的LINQ,所以我提前道歉,如果它是一個愚蠢的問題。我繼承了下面的查詢,並且它沒有產生正確的結果來修復它,我必須理解它在做什麼。 這裏是查詢,如果有人可以向我解釋它在做什麼(也可能修復它),將不勝感激。LINQ聲明與條件選擇從表
**using (var dbCtx = new TLMDbContext())
{
var dvps = dbCtx.tblDVPTests.Where(x => x.DVPID == 2176);
// these 2 following if conditions doesnt bring correct result sets
if (dvpMasterPhaseId.HasValue)
{
dvps = dvps.Where(x => x.tblDVPPhases.All(p => p.DVPMasterPhaseID ==255));
}
if (dvpMasterVariantId.HasValue)
{
dvps = dvps.Where(x => x.tblDVPPhases.All(p => p.tblDVPVariants.All(v=>v.DVPMasterVariantID==681)));
}
}**
UPDATE 我想寫成LINQ這下面的查詢,如果你們的一個告訴我什麼是錯的LINQ查詢上面將是巨大的。
SELECT * FROM tblDVPTest 內部聯接tblDVPPhase上tblDVPTest.DVPTestID = tblDVPPhase.DVPTestID 其中dvpid = 2176和tblDVPPhase.DVPMasterPhaseID = 255 這裏是與兩個條件
SELECT * FROM tblDVPTest 內部聯接tblDVPPhase上tblDVPTest.DVPTestID = tblDVPPhase.DVPTestID 內部聯接tblDVPVariant上tblDVPPhase.DVPPhaseID = tblDVPVariant.DVPPhaseID 其中dvpid = 2176和tblDVPPhase.DVPMasterPhaseID = 255和tblDVPVariant.DVPMasterVariantID = 681
我們肯定需要更多的信息,而不是幫助。你說條件不會帶來正確的結果。你在期待什麼?究竟發生了什麼? –
如果你們可以幫助我瞭解發生的事情會很棒。想法是這第一個過濾器 – user2954221
我轉貼在以下http://stackoverflow.com/questions/33301930/linq-delima-to-convert-sql-into-linq – user2954221