日期时间到字符串转换显示错误
我想用自定义格式将DateTime
转换为string
。但它显示我LINQ
错误日期时间到字符串转换显示错误
LINQ到实体无法识别方法“System.String的ToString(System.String)”的方法,而这种方法不能被翻译成店表达。
这是我在控制器代码:
public ActionResult DaywiseData(DateTime date)
{
try
{
var att = db.Attendances
.Where(d => d.Date == date)
.Select(s => new AttendanceViewModel
{
Date = s.Date,
aa = DateTime.Parse(s.InTime.ToString()).ToString("HH:mm tt"), //Error is not showing after removing this line
InTime = s.InTime,
OutTime = s.OutTime,
EmployeeName = s.Employee.Name,
EmployeeUsername = s.Employee.Username
})
.ToList();
return Json(att);
}
catch (Exception ex)
{
return Json(ex.Message);
}
}
你的LINQ被翻译成SQL查询不支持的ToString()。将其保留为DateTime并稍后转换为字符串。这样
public ActionResult DaywiseData(DateTime date)
{
try
{
var att = db.Attendances
.Where(d => d.Date == date)
.Select(s => new AttendanceViewModel
{
Date = s.Date,
DateTime = s.InTime, //dateTime property
DateTimeString = string.Empty //string property
InTime = s.InTime,
OutTime = s.OutTime,
EmployeeName = s.Employee.Name,
EmployeeUsername = s.Employee.Username
})
.ToList();
att.ForEach(a => a.DateTimeString = a.DateTime.ToString("HH:mm tt"));
return Json(att);
}
catch (Exception ex)
{
return Json(ex.Message);
}
}
'DateTime.Parse(s.InTime.ToString())'不是必需的,'s.InTime'已经是'DateTime'了。 –
现在工作..很多感谢 –
如果'InTime'是'Nullable'怎么办? –
东西,你会得到错误,因为里面你选择的Expression
转换为SQL和数据库服务器上运行,这就是为什么它不承认DateTime.Parse(s.InTime.ToString()).ToString("HH:mm tt")
方法。你有两个选择:
更新你的代码兑现您的查询的结果做.Select
前:
var att = db.Attendances
.Where(d => d.Date == date)
.ToList() // Here
.Select(s => new AttendanceViewModel
{
Date = s.Date,
aa = DateTime.Parse(s.InTime.ToString()).ToString("HH:mm tt"), //Error is not showing after removing this line
InTime = s.InTime,
OutTime = s.OutTime,
EmployeeName = s.Employee.Name,
EmployeeUsername = s.Employee.Username
})
.ToList();
return Json(att);
或者使用@尼诺的回答
尝试使用SqlFunctions.StringConvert; 像这样;
aa = DateTime.Parse(SqlFunctions.StringConvert(s.InTime)), //Error is not showing after removing this line
什么是错误?你能更新答案吗? –
@AkshayKhandelwal OP已经发布了错误.. –
上面给出的错误。 –