2016-09-29 4 views
2

条件に基づいて値を入力するNULL可能なデータ型フィールドを持つlinqクエリがあります。nullq可能なdatetimeフィールドのLinqのcase文

var result=(from t1 in context.table1 
      join t2 in context.table2 
      on t1.id equals t2.fieldId 
      select new model1 
      { 
       name= t2.name, 
       DateCompleted = t1.Status == "Success" 
        ? Convert.ToDateTime(t1.CompletedDate) 
        : Null 
      }).ToList(); 

ここでは、DateCompletedをnullにすることができます。ステータスが成功すると、完了した日付のみが必要です。それ以外の場合はnullを表示する必要があります。今、 ":Null"部分がエラーを投げています。事前 で

おかげSUBIN

+0

nullの代わりにnullを使用してみてください –

+0

httの重複p://stackoverflow.com/questions/16769233/how-to-set-datetime-to-null –

答えて

4

次のコード試してみてください、この

var result=(from t1 in context.table1 
      join t2 in context.table2 
      on t1.id equals t2.fieldId 
      select new model1 
      { 
      name= t2.name, 
      DateCompleted = t1.Status == "Success" ? Convert.ToDateTime(t1.CompletedDate): (DateTime?)null 
                  }).ToList(); 
+0

あなたは私よりも速かった:+1: – user449689

+0

結局のところupvoteに関することです。 –

3

を試してみてください:あなたはNULL可能日時を使用する必要が

var result=(from t1 in context.table1 
      join t2 in context.table2 
      on t1.id equals t2.fieldId 
      select new model1 
      { 
       name= t2.name, 
       DateCompleted = t1.Status == "Success" 
        ? Convert.ToDateTime(t1.CompletedDate) 
        : (DateTime?) null 
      }).ToList(); 
1

をデフォルト(?のDateTime)

関連する問題