我找到了一些解决了这个问题的线程。但是,它们并不属于对我有用的环境。实际上,我正在尝试将DateTime转换为字符串,以将其呈现为MVCContrib网格。以下是我的模型中的内容:
public IQueryable<FindStudentViewModel> GetStudentsProjected()
{
var projectedStudents= from p in FindAllStudents()
select new FindStudentViewModel
{
StudentID = p.StudentID,
FirstName = p.FirstName,
LastName = p.LastName,
EmailAddress = p.EmailAddress,
CurrentCollege = p.CurrentCollege,
IAUTerm = p.IAUTerm,
IAUProgram = p.IAUProgram,
InquirySource = p.InquirySource,
InquiryDate = (string)p.InquiryDate.ToString(),
Status = p.Status
};
return projectedStudents;
}
当然,LINQ不喜欢这一点。差不多,我需要能够将InquiryDate转换为字符串,然后通过InquiryDate订购结果。提前谢谢。
答案 0 :(得分:2)
订购DateTime的字符串表示可能不是一个非常好的计划。请考虑以下日期:
5/4/2007
9/12/2011
6/4/1904
如果您在DateTime
类型时订购它们,您将获得:
6/4/1904
5/4/2007
9/12/2012
如果你对它们使用.ToString()
,那就订购它,你会得到:
5/4/2007
6/4/1904
9/12/2011
要测试的代码:
var dates = new DateTime[] { new DateTime(2012, 9, 12), new DateTime(1904, 6, 4), new DateTime(2007, 5, 4) };
foreach (var item in dates.OrderBy(d => d))
{
Console.WriteLine(item);
}
Console.WriteLine();
var temp = dates.Select(d => d.ToString());
foreach (var item in temp.OrderBy(d => d))
{
Console.WriteLine(item);
}