【发布时间】:2011-03-11 14:03:21
【问题描述】:
如何在 C# 中使用 Linq to SQL 执行这个 MS SQL 查询
SELECT DATEPART(yy, MAX (articleDate)) AS max_year,
DATEPART(yy, MIN (articleDate)) AS min_year
FROM News;
谢谢
【问题讨论】:
标签: c# .net sql-server linq-to-sql
如何在 C# 中使用 Linq to SQL 执行这个 MS SQL 查询
SELECT DATEPART(yy, MAX (articleDate)) AS max_year,
DATEPART(yy, MIN (articleDate)) AS min_year
FROM News;
谢谢
【问题讨论】:
标签: c# .net sql-server linq-to-sql
我认为您无法在单个查询中轻松/优雅地完成此操作,但除此之外它很简单:
var minYear = dbContext.News.Min(x => x.ArticleDate.Year);
var maxYear = dbContext.News.Max(x => x.ArticleDate.Year);
(可能可以在单个查询中执行此操作,但据我所知,只能通过添加某种包装查询。)
【讨论】:
怎么样:
var foo = (from article in context.New
group article.ArticleDate.Year by 1 into g
select new
{
MinResult = g.Min(),
MaxResult = g.Max()
}).FirstOrDefault();
【讨论】: