В приведенном ниже запросе должны быть возвращены записи, которые либо имеют соответствующий Id, указанный в ownerGroupIds , либо совпадают с ownerUserId . Однако 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();
}
Однако, когда для ownerUserId передается значение NULL, я получаю следующую ошибку: Nullable object must have a value.
Я чувствую покалывание. Возможно, мне придется использовать лямбда-выражение в этом случае?