2016-06-13 3 views
0

私はちょっと混乱しています(間違いなくC#とエンティティフレームワークの新機能だが、それはその点以外にもある)。データベースへのクエリがデータを返さない状況をチェックしたいと思う。私のページ上の変数以下は現在私が持っているコードで、nullをチェックしている行でnullをチェックする必要があることを示すエラーを投げています(UserName値がnullの場合、レコードはそれは必須の列です)。では、ここでヌルの返品を確認する方法については何が分からないのですか?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'がヌルであるかどうかを調べます。問題は、 'CInTracUsers'がヌルであることです。リンクされた複製を読んで、問題の解決方法に関するデバッグスキルを学んでください。 –

+0

実際にはエラーを投げているのでしょうか、IDEが単に 'CInTracUsers' _がnullになることをあなたに伝えようとしています。あなたの' Where'が何にも合致しない場合には、 –

+0

ヌルネスは推移的ではありません。 'CInTracUsers'は' null'なので、 'UserName'プロパティへのアクセスは例外です。 –

答えて

0

オブジェクト全体を尋ねる:

if (CInTracUsers == null) 

CInTracUsersがnullの場合、彼proprties

のいずれかを呼び出すときに例外を取得しますので、
+2

最新のC#バージョンを使用している場合は、 'if(CInTracUsers?UserName == null)'を使用することもできます。 –

関連する問題