2012-02-08 6 views
3

при работе с Linq запрос я получаю ошибкуLinq, как проверить, если значение поля равно нулю

System.NullReferenceException: ссылка на объект не указывает на экземпляр объекта.

var db = from d in DepartmentBLL.GetDepartmentList() 
    join b in BudgetMasterBLL.GetBudgetMasterList()    
    on d.Departmentid equals b.Departmentid into leftJoin      
    from results in leftJoin.DefaultIfEmpty() 
    select new 
    { 
     Name = d.Name, 
     Create = results.Budgetmasterid == null ? "null": "value", //ERROR HERE 
     CreateURL = "frmBudgetInitial.aspx?departmentid=" + d.Departmentid.ToString() + "&departmentcategoryid=" + d.Departmentcategoryid.ToString() 
    }; 

Я нашел некоторую помощь на форуме, но не решить мою проблему, пожалуйста, сообщите. спасибо.,

+0

первый чек, если результаты равна нулю перед использованием results.Budgetmasterid – DotNetUser

+0

Поскольку results.Budgetmasterid является Строковое значение, разве вы не должны проверять значение String.Empty вместо null? –

ответ

3

попробовать

Create = results == null || string.IsNullOrEmpty(results.Budgetmasterid) ? "null": "value", 

или

Create = results == null || string.IsNullOrWhitespace(results.Budgetmasterid) ? "null": "value", 
+0

Это кажется правильным, но в то же время это не может решить первое исключение. –

+0

Согласен. Точка (.) По-прежнему может ссылаться на нулевой объект. –

+0

@Ales Я отредактировал после ваших комментариев [at] Vladislav. это прямо сейчас? – Bastardo

2

Это должно помочь

Create = results == null || results.Budgetmasterid == null ? "null": "value", //ERROR HERE 
+0

Не будет ли это присваивать 'true'' Create', если результаты не возвращаются? –

+0

Исходное условие истинно, когда результат не возвращается. Я просто соглашусь с этим. –

+0

И, между прочим, даже возможно, что 'results' будет null? Я имею в виду, пустая коллекция! = Null? –

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