DateTime.ToString(“MM / dd / yyyy”)抛出错误。这是我的代码:
public IEnumerable<EmployeeViewModel> GetAllEmployees()
{
List<EmployeeViewModel> vm = (
from a in db.Employees
select new EmployeeViewModel
{
EmployeeId = a.EmployeeId,
EmployeeName = a.EmployeeName,
HiredDateString = a.HiredDateTime.ToString("MM/dd/yyyy"),
HiredTimeString = a.HiredDateTime.ToString("h:mm tt"),
Description= a.Description
}).ToList();
return vm;
}
编辑:HiredDateString和HiredTimeString是ViewModel中的字符串。
我得到了以下错误:
<Error>
<Message>An error has occurred.</Message>
<ExceptionMessage>
LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.
</ExceptionMessage>
<ExceptionType>System.NotSupportedException</ExceptionType>
如果我只使用: a.HiredDateTime.ToString(),它不会抛出错误。但它给了我完整的DateTime字符串;我想分别获取日期和时间字符串。 非常感谢你的帮助。
答案 0 :(得分:4)
你不能在linq表达式中使用日期时间格式。你应该这样:
HiredDateString = a.HiredDateTime,
,你应该在show时格式化这些数据。
例如在razor页面中:
foreach (var itemin vm )
{
@item.HiredDateString.ToString("MM/dd/yyyy")
}