c# – 从LINQ实体中的DateTime获取可排序字符串的正确方法是什么?

// EmployeeService:
[WebMethod]
public List<Employee> GetEmployees()
{
    return
        (
            from p in db.Persons
            where p.Type == 'E'
            select new Employee
            {
                Name = p.FullName,
                //HireDate = p.CreationDate.ToString(), 
                // works, but not in the format I need

                //HireDate = p.CreationDate.ToString("s"), 
                // throws a NotSupportedException

                //HireDate = Wrapper(p.CreationDate), 
                // works, but makes me worry about performance 
                // and feel dead inside
            }
        ).ToList<Employee>();
}

private String Wrapper(DateTime date)
{
    return date.ToString("s");
}

// Elsewhere:
public class Employee
{
    public String Name;
    public String HireDate;
}

我正在使用需要ISO 8601样式格式的日期的JavaScript框架,这正是在DateTime对象上调用.ToString(“s”)将返回的日期.

在LINQ to SQL中有更清晰/更有效的方法吗?

最佳答案 我相信Wrapper技巧和你在这种情况下可以得到的一样好.抱歉.

更新:似乎这里再次被问到:Linq to Sql – DateTime Format – YYYY-MMM (2009-Mar).答案也非常“抱歉”;考虑到谁参与了那个问题,我现在确信你不能做得更好.

点赞