Я конвертирую некоторые SQL-запросы в Linq (Entity Framework). Большинство запросов работают нормально, но я столкнулся с небольшими проблемами со следующим.Запрос Linq не работает, пока sql работает правильно
Когда я пытаюсь выполнить этот запрос в SQL Server Management Studio, он возвращает несколько записей.
SELECT
bDrillDown,
Icon
FROM
dbo.Checklist
INNER JOIN
dbo.Codes ON Checklist.iCodeID = Codes.iCodeID
AND Codes.bDeleted = 0 AND Codes.bObsolete = 0
INNER JOIN
dbo.CodeGroup ON Codes.iGroupID = CodeGroup.iGroupID
AND CodeGroup.bDeleted = 0 AND CodeGroup.bInspection = 1
INNER JOIN
dbo.CodeInspectionTypeV ON Cast(LEFT(Checklist.LongKey, 6) as int) = CodeInspectionTypeV.InspectionTypeID
WHERE
Checklist.bDeleted = 0
ORDER BY
iChecklistID
Когда я преобразовать его в LINQ запрос, как:
var checkList = from checklist in db.Checklists
join code in db.Codes on checklist.iCodeID equals code.iCodeID
where code.bDeleted == false && code.bObsolete == false
join codeGroup in db.CodeGroups on code.iGroupID equals codeGroup.iGroupID
where codeGroup.bDeleted == false && codeGroup.bInspection == true
join codeInspectionType in db.CodeInspectionTypeVs on checklist.LongKey.Substring(0, 6) equals codeInspectionType.InspectionTypeID.ToString()
where checklist.bDeleted == false
orderby checklist.iChecklistID
select new
{
checklist.iChecklistID,
InspectionTypeID = checklist.LongKey.Substring(0, 6).ToString()
};
Он не возвращает никаких записей, только пустой массив.
Отлаживайте код, начиная с одного соединения, а затем добавляйте два других соединения, чтобы узнать, где код идет не так. – jdweng
Во время отладки, весь запрос Linq выполняется один раз. что мне делать? – user3253756
Что такое ** тип ** (1) 'checklist.LongKey' (2)' codeInspectionType.InspectionTypeID'? –