이 쿼리는 다음 중 하나가 ownerGroupIds 또는 일치하는 ownerUserId 공급 일치하는 ID가 레코드를 반환해야하는 위치에서 널 (null) 매개 변수를 무시합니다. 그러나 ownerUserId이 null 인 경우 쿼리의이 부분을 무시하고 싶습니다. 나는이 경우에 람다 표현식을 사용 할 수있는 따끔 거림을 얻을 Nullable object must have a value.
는 Linq에 - 투 - SQL : 절
: 널 (null)이 그 다음 나는 다음과 같은 오류가 ownerUserId을 위해 전달되는 그러나
public static int NumberUnderReview(int? ownerUserId, List<int> ownerGroupIds)
{
return (from c in db.Contacts
where
c.Active == true
&&
c.LastReviewedOn <= DateTime.Now.AddDays(-365)
&&
(// Owned by user
!ownerUserId.HasValue ||
c.OwnerUserId.Value == ownerUserId.Value
)
&&
(// Owned by group
ownerGroupIds.Count == 0 ||
ownerGroupIds.Contains(c.OwnerGroupId.Value)
)
select c).Count();
}
?
그것은 바로 보인다. 불만이있는'c.OwnerUserId '여야합니다. 확인 할수 있어요? – Codesleuth
테스트를 위해'(c.OwnerUserId.HasValue && ownerUserId.HasValue && c.OwnerUserId.Value == ownerUserId.Value) '절을 변경했으며 여전히 동일한 오류 메시지가 표시됩니다. –
'c. OwnerGroupId'가 null이되어 Exception을 던집니까? – ANeves