我有以下内容,我只需要获取日期(不是日期时间) 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)
我只是改变了我的答案..基本上......你需要在新的集合中找回几个日期时间......然后当你使用这些值时,你可以做String.Format()。原因是LINQ归结为SQL,并且没有String.Format()转换器(但是?)。
所以当你遍历结果时,你可以将这些结果转换为属性显示(即String.Format(...))..但是你将无法在一个linq语句中选择并转换结果,你可能能够做到LAMBDA(.ForEach()),它能够遍历结果,但是,它只是一种做我上面所描述的方式。
......据我所知
答案 1 :(得分:0)
你可以试试这个,我认为更优雅
var info = from pr in db.Prog
join tf in db.In_Lens
on pr.PID equals tf.PID
select new
{ ReqDate = !string.IsNullOrEmpty(tf.ReqDate) ? string.Format("{0:MM/dd/yyyy}",tf.ReqDate) : string.Empty(),
ReqDeclinedDate = !string.IsNullOrEmpty(tf.ReqDeclined) ? tf.ReqDeclined.ToString("MM/dd/yyyy") : string.Empty()
}).ToList()