2014-02-12 3 views
1

Я пытаюсь в linq-запросе проверить, является ли одно из полей нулевым, но я получаю эту ошибку, что бы я ни делал.Как проверить запрос linq для null?

«Нестатический метод требует цели».

Это мой код:

var users = from s in db.Users 
         where s.DepartmentId == booking.Item.DepartmentId && s.UserEmail != null 
         select s; 

ли способ, чтобы пройти через эту ошибку и быть в состоянии фактически проверить, если USEREMAIL является недействительным?

p.s: Я использую инфраструктуру сущности asp.net mvc.

+4

Исключение вы получаете приходит от [пытается вызвать нестатический метод от статического метода] (https://stackoverflow.com/questions/4577191/non-static-method-requires-a -target-с-диез). Вам нужно будет опубликовать больше вашего кода. – 48klocs

ответ

1

Убедитесь, что первые 2 буквы в верхнем регистре (DBNull.Value).

EDIT:

Попробуйте скопировать элемент бронирования в локальной переменной.

var departmentId = booking.Item.DepartmentId; 
var users = from s in db.Users 
where s.DepartmentId == departmentId && s.UserEmail != null 
select s; 
+0

ok У меня есть DBNull.Value, и теперь я получаю эту ошибку: Operator '! =' Не может быть применен к операндам типа 'string' и 'System.DBNull' – Wizeman1986

+0

hmm yeah в этом случае, похоже, что это было правильно, как это было до (! = null). Вы также можете попробовать использовать «! String.IsNullOrEmpty (s.UserEmail)». Однако похоже, что у вас есть другая ошибка, связанная с вашим статическим методом ... (является ли UserEmail просто строковым свойством?) –

+0

Я тоже пробовал это, и я получаю ту же ошибку: «Нестатический метод требует цели». Да, UserEmail - это просто свойство строки. – Wizeman1986

0
var users = from s in db.Users 
    where s.DepartmentId == booking.Item.DepartmentId && s.UserEmail != DbNull.Value         
    select s; 

Вы должны сравнить его с DbNull.Value

+0

его говорит, что DbNull не существует в текущем контексте? это странно, потому что я использую пространство имен системы! – Wizeman1986

+0

ok Я получил DBNull.Value, и теперь я получаю эту ошибку: Operator '! =' Не может применяться к операндам типа 'string' и 'System.DBNull' – Wizeman1986

+0

var users = from s in db.Users где s. DepartmentId == booking.Item.DepartmentId && string.IsNullOrEmpty (s.UserEmail) == false select s; –

Смежные вопросы