2012-01-27 18 views
0

ReqDateとRepDeclinedの両方のDate(datetimeではない)のみを取得する必要がある次の場所は、NULL可能なdatetimeフィールドです。LINQ DateTime nullable Dateフィールドの書式設定

var info = from pr in db.Prog   
join tf in db.In_Lens   
on pr.PID equals tf.PID   
select new   
{ ReqDate = String.Format("{0:MM/dd/yyyy}",tf.ReqDate),   
    ReqDeclinedDate = tf.ReqDeclined.ToString("MM/dd/yyyy")  
}).ToList() 

ReqDateとRepDeclinedは両方ともNULL可能なdatetimeフィールドであるため動作しません。私もString.Formatを試しましたが、運はありませんでした。

答えて

0

ヌルオブジェクト上.ToString呼び出しによって引き起こされるとNullReferenceExceptionを避けるために

var info = from pr in db.Prog   
join tf in db.In_Lens   
on pr.PID equals tf.PID   
select new   
{ 
    ReqDate = (tf.ReqDate == null ? "" : tf.ReqDate.ToString("MM/dd/yyyy")), 
    ReqDeclinedDate = (tf.ReqDeclined == null ? "" : tf.ReqDeclined.ToString("MM/dd/yyyy")) 
}).ToList() 

を行います。どちらの場合も

または

使用String.Format

var info = from pr in db.Prog   
join tf in db.In_Lens   
on pr.PID equals tf.PID   
select new   
{ 
    ReqDate = String.Format("{0:MM/dd/yyyy}",tf.ReqDate), 
    ReqDeclinedDate = String.Format("{0:MM/dd/yyyy}",tf.ReqDeclined) 
}).ToList() 
0

はしばらくの間、これで苦労されていました。これは私のために働くことがわかった。

var info = (from pr in db.Prog   
      join tf in db.In_Lens   
      on pr.PID equals tf.PID   
      select new { tf.ReqDate, tf.ReqDeclined}).ToList(); 

var infoFormatted = info.Select(x => new { ReqDate = x.ReqDate.HasValue?x.ReqDate.Value.ToString("MM/dd/yyyy"):"", ReqDeclined = x.ReqDeclined.HasValue?x.ReqDeclined.Value.ToString("MM/dd/yyyy"):""});