-4

Linq 中是否有任何内置函数可以在使用 LINQPAD 时打印月份名称?

我想在以下场景中打印月份名称

var query = from e in Employees
           let month=e.BirthDate.GetValueOrDefault()
           let birthmonth=month.ToString("MMMM")
           select birthmonth;
           query.Dump();

当我运行它时,它会抛出 NotSupportedException。如何在 Linq to Sql 中打印月份名称?

4

2 回答 2

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在中间进行评估可以解决该问题。

于 2012-09-07T08:26:20.003 回答
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 查询中。

于 2012-09-15T16:21:54.897 回答