Я новичок в 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 выше, что будет большим.
выберите * из tblDVPTest внутреннее соединение tblDVPPhase на tblDVPTest.DVPTestID = tblDVPPhase.DVPTestID где dvpid = 2176 и tblDVPPhase.DVPMasterPhaseID = 255 Здесь находится и с условием
выберите * из 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