2017-06-21 20 views
1

を使用する前にnullをチェックするには、この単純化LINQクエリを見てみてください。LINQ、ナビゲーションプロパティ

var lst = from pat in ctx.PATIENTS 
           join cons in ctx.CONSULTATIONS.Include(a => a.EXAMENS) 
           on pat.ID_PATIENT equals cons.CON_ID_PATIENT into joinpatcons 
           from p in joinpatcons.DefaultIfEmpty() 
           select new ConsultationsPageType() 
           { 
            ID_CONSULTATION = (p == null) ? 0 : p.ID_CONSULTATION 
           }; 

ID_CONSULTATIONフィールドは、私が何をしたいNULL可能int型

public class ConsultationsPageType 
    { 
     ...... 
     public int? ID_CONSULTATION { get; set; } 
     ...... 
    } 

がnullを返すようになっていますpが0ではなくnullの場合間intentreと

及びpはint型 暗黙の変換が存在しないため、単純に0ヌルによっては置換

は私

条件式のタイプを判別できません

このエラーを与えた?.ID_CONSULTATIONこの1

ラムダ式交配にはヌル伝播を含めることはできません 演算子

私は、.NET 4.6

感謝の午前。

+1

だから何が 'ID_CONSULTATION =(P == NULL)に変更するには難しいですか? null:p.ID_CONSULTATION'?何か不足していますか? –

+0

申し訳ございませんが、編集した質問 – user2475096

+0

を見てください。あなたは 'null'を' int? 'にキャストすることができます。私の更新された答えを見てください。 –

答えて

1

あなたは、単にnullにゼロを変更し、int?にキャストすることができます

ID_CONSULTATION = (p == null ? (int?)null : p.ID_CONSULTATION) 
+0

はうまくいった!ありがとう:) – user2475096

関連する問題