0
有一個表在數據庫:LINQ到SQL查詢與GROUP BY
[id] [int] IDENTITY(1,1) NOT NULL,
[name] [varchar](150) NOT NULL,
[date_of_birth] [date] NOT NULL,
我需要獲得GridView控件包含2列的數據源。
----------------
| age || count |
----------------
| 20 || 3 |
| 21 || 4 |
| 25 || 5 |
----------------
可以用一個查詢來做到嗎?
我已經試過:
var dates = (from u in db.Users
group u by u.date_of_birth into g
select new { age = calculateAge(g.Key) }).ToList();
var dates1 = from d in dates
group d by d.age into g
select new { age = g.Key, count = g.Count() };
GridView1.DataSource = dates1;
GridView1.DataBind();
這工作,但我覺得有一種方法,使之更加簡單。或不?
P.S. calculateAge具有以下特徵
private int calculateAge(DateTime date_of_birth)
它給出了一個例外方法「的Int32 calculateAge(System.DateTime)'不支持對SQL的轉換。 – Novikoff
我對LinqToSql不是很熟悉。但我假設在你的解決方案中,首先在SQL端進行分組,並在.NET端進行選擇。而在我的解決方案中,有一組是按_after_選擇的。 – Aleksei