2017-07-08 14 views
-3

AccountMediaServerKeyテーブルが空の場合は、データを取得するために以下のクエリを実行しています。モデルがnull例外エラーを表示しています。データベースモデルが空であることを確認してください

var MediaKey = (from p in db.AccountMediaServerKey 
       where p.Tagger == USID && p.TagTo == USID 
       select new MediaServerHomeModel 
       {         
        Stream=p.Stream, 
        Event = p.Event, 
        Status = p.Status 

       }).FirstOrDefault(); 
+1

'if(Model!= null){//モデル上で何かする}'? – Shyju

+0

AccountMediaServerKeyテーブルが空の場合、常にエラーが発生します。このオプションを試してみました – Verma

+0

特定のコード行がerrrorを投げていますか?問題の関連コードを含める必要があります。 – Shyju

答えて

0

からのNOのデータをフェッチする際のモデルがnullの場合は、単に

If(MediaKey==null) 
{ 
    //do something 
} 

を行うだろうそれとも、時にヌル新しいオブジェクトをinstatiateしたいならば、あなたは

を行うだろうかチェックするために、任意のアイデア
var obj = MediaKey ?? new MediaServerHomeModel(); 

モミを返しFirstOrDefault

0

方法を表示する戻りOBJコレクション内のstアイテムまたはNULL。したがって、テーブルが空の場合、変数MediaKeyはNULL値を持ちます。それをビューに渡す場合は、プロパティにアクセスする前にヌルチェックを行ってください。

@model MediaServerHomeModel 
<h1>Index</h1> 
@if(Model!=null) 
{ 
    <p>Model is not null</p> 
    <!-- Access Model safely now --> 
} 

ヌル参照例外を防ぐには、他の参照型のプロパティでも同じことが必要です。たとえば、Streamプロパティが参照型の場合、nullになる可能性があります。したがって、それを使用する前にヌルチェックを行うことは安全です。

@if(Model!=null && Model.Stream!=null) 
{ 
    <p>Model.Stream is not null</p> 
    <!-- Access Model.Stream safely now --> 
} 
+0

'??'表記法は、 'Model?.Status'のようにデフォルトを表示することがオプションである場合にも有効です。あなたの考え? – Fabulous

+0

OPを使用している場合は、これをサポートするC#のバージョンを使用しています。 – Shyju

+0

有効なポイントを作成します。私は時々、プラットフォーム/言語の古いバージョン – Fabulous

0

あなたが持っている2つの方法最初 を

if (MediaKey == null) 
{ 
//do some thing 
} 

そのnullの場合は、クエリを確認するか、あなたが前にそれを確認することができ、クエリ以下のように:

if(db.AccountMediaServerKey.Any()) 
{ 

} 

:フィルタリングなし

フィルタリング:

if(db.AccountMediaServerKey.Any(p=> p.Tagger == USID && p.TagTo == USID)) 
{ 

} 
関連する問題