0

データベースにテーブルがあります:

    [id] [int] IDENTITY(1,1) NOT NULL,
    [name] [varchar](150) NOT NULL,
    [date_of_birth] [date] NOT NULL,

2 つの列を含む GridView のデータソースを取得する必要があります。

----------------
| age || count |
----------------
| 20  ||   3   |
| 21  ||   4   |
| 25  ||   5   |
----------------

1つのクエリでそれを行うことは可能ですか?

私が試したこと:

            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();

これは機能しますが、もっと簡単にする方法があると思います。か否か?

PS calculateAge には次の署名があります

private int calculateAge(DateTime date_of_birth)
4

1 に答える 1