2016-06-13 6 views
0

Я немного запутался здесь (несомненно, из-за того, что был новичком в C# и инфраструктуре сущности, но это не так) Я хочу проверить ситуацию, когда мой запрос к базе данных не возвращает данных, и при этом происходит установление некоторых значений для переменные на моей странице Ниже приведен код, который у меня есть сейчас, который вызывает ошибку, сообщая мне, что мне нужно проверить значение null на самой строке, где я проверяю значение null (если значение UserName равно null, запись не возвращалась как это требуемый столбец). Итак, что мне не хватает на то, как идти о проверке нулевого возврата здесь?Проверка на отсутствие ошибки null?

using (CInTracDBEntities Context = new CInTracDBEntities()) 
{ 
var CInTracUsers = Context.CInTracUsers.Where(a => a.Login == HttpContext.Current.Request.LogonUserIdentity.Name).Select(x => new { x.Login, x.UserName, x.Status, x.StatusDate, x.ReviewDate }).FirstOrDefault(); 
if (CInTracUsers.UserName == null) 

Спасибо, Кен ....

+6

Ваша проверка 'CInTracUsers.UserName == null' проверяет, имеет ли значение' UserName' значение null, проблема, с которой вы сталкиваетесь, заключается в том, что 'CInTracUsers' - это то, что является нулевым. Прочтите связанный дубликат, чтобы узнать навыки отладки, как решить проблему. –

+0

Действительно ли это ошибка, или ваша среда IDE просто пытается сказать вам, что 'CInTracUsers' _may_ будет null, что будет, если ваш' Where' не сможет что-либо сопоставить. –

+0

'null'-ness не является транзитивным. 'CInTracUsers' является' null', поэтому попытка получить доступ к свойству 'UserName' является исключением. –

ответ

0

просят всего объекта:

if (CInTracUsers == null) 

, потому что если CInTracUsers равно нулю, вы получите исключение при вызове любого из его proprties

+2

Если использовать последнюю версию C#, он также может использовать 'if (CInTracUsers? .UserName == null)' –

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