오늘 내가 직면 한 문제가 있습니다.표현식은 항상 거짓입니다.
나는
EmPayRollData emPayRollData = payroll.EmPayRollDatas.First();
모두 급여 C#으로 성명을 가지고 EmPayRollData는 엔티티입니다. 즉 급여가 부모이고 EmPayRollData가 자식입니다. payroll.EmPayRollDatas
가 비어있을 수 있다면, 당신은 대신 사용해야합니다
오늘 내가 직면 한 문제가 있습니다.표현식은 항상 거짓입니다.
나는
EmPayRollData emPayRollData = payroll.EmPayRollDatas.First();
모두 급여 C#으로 성명을 가지고 EmPayRollData는 엔티티입니다. 즉 급여가 부모이고 EmPayRollData가 자식입니다. payroll.EmPayRollDatas
가 비어있을 수 있다면, 당신은 대신 사용해야합니다
"표현이 항상 false입니다":
payroll.EmPayRollDatas.FirstOrDefault()
companyRow.CompanyName = (empowerPayRollData == null) ? string.Empty : empowerPayRollData.Name;
내가 말하는 ReSharper에서 주석을 얻을 :
지금 나는 문이빈 열거 형의 경우 null을 반환합니다. First
은이 경우 예외를 던지므로 질문하는 코드 행에 도달하면 시퀀스가 비어 있지 않으므로 변수가 null 일 수 없습니다.
네, 그게 문제였습니다. 너와 다른 사람들 덕분에. – SaiBand
First()
은 개체를 반환하거나 그렇지 않으면 예외를 throw하기 때문입니다. Resharper는 그 라인에 도달하면 empowerPayRollData가 null이 아님을 알고 있습니다. 이 경우 FirstOrDefault
을 사용하는 것이 좋습니다.
니스, 나는 그것을 완전히 놓쳤다! –
Resharper가 인상적입니다, 나는 말해야합니다 :) –
Resharper는 아마도 .First()
이 null이 아니거나 예외가 될 것이라는 것을 알고있을 것입니다.
이로부터 표현식이 항상 거짓임을 유추 할 수 있습니다.
당신이 빈 결과-세트를 기대한다면
, 나는 당신이 당신의 코드 샘플을 개정 할 필요가 있다고 생각.FirstOrDefault()
사용합니다. 엔티티 중 하나의 철자가 틀렸다고 생각하고 급여가 어디 있는지 파악하는 데 몇 분이 걸렸습니다. 정확히 무엇을하고 있는지 불분명합니다. 문제가있는 인접한 코드 블록을 게시 할 수 있습니까? –