在使用LINQPAD时,Linq中是否有任何Inbuilt函数可以打印月份名称?
我想在以下场景中打印月份名称
var query = from e in Employees
let month=e.BirthDate.GetValueOrDefault()
let birthmonth=month.ToString("MMMM")
select birthmonth;
query.Dump();
当我运行它时,它会抛出NotSupportedException。 如何在Linq中打印月份名称到Sql?
答案 0 :(得分:0)
分两步完成,一个是从数据库中获取月份,另一个是使用Linq-To-Objects执行格式化。
var birthDates = Employees.Select(e => e.BirthDate).ToList();
var query = birthDates.Select(d => d != null ? d.ToString("MMMM") : "Null");
query.Dump();
无论您使用的是什么ORM,都无法将查询的字符串格式部分转换为适用于您的数据库的SQL。因此,分两步完成并使用ToList
进行评估可以克服这个问题。
答案 1 :(得分:0)
尝试ToString
,而不是使用string.Format
。类似的东西:
var query = (from e in Employees
let month = e.BirthDate.GetValueOrDefault()
let birthmonth = string.Format("{0:MMMM}", month)
select birthmonth);
query.Dump();
这似乎可以在我的本地测试中使用,尽管它不包含在SQL查询中。