我有以下内容,我只需要从ReqDate和RepDeclined获取日期(不是日期时间),它们都是可以为空的日期时间字段。
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都是可以为空的日期时间字段。我也试过String.Format,但没有运气。
答案 0 :(得分:0)
待办事项
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()
避免对空对象的.ToString
调用引起的NullReferenceException。
或强>
在两种情况下都使用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()
答案 1 :(得分: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"):""});