public void TestLinqGroupBy()
{
var connectionString = GetConnectionString("TestLinqGroupBy");
var context = new MyEntityContext(connectionString);
var pe = context.Persons.Create();
pe.Name = "Bill";
pe.Age = 51;
var pb = context.Persons.Create();
pb.Name = "Bill";
pb.Age = 51;
var pf = context.Persons.Create();
pf.Name = "Bill";
pf.Age = 47;
var pd = context.Persons.Create();
pd.Name = "Dennis";
pd.Age = 47;
var pc = context.Persons.Create();
pc.Name = "Dennis";
pc.Age = 20;
var pa = context.Persons.Create();
pa.Name = "Dennis";
pb.Age = 28;
context.SaveChanges();
Assert.AreEqual(6, context.Persons.Count());
var grpByAge = context.Persons.GroupBy(people => people.Age);
foreach(var item in grpByAge)
{
var age = item.Key;
var count = item.Count();
}
var grpNyName = from p in context.Persons
group p by p.Name into g
orderby g.Key
select new { Name = g.Key, Count = g.Count() };
foreach (var item in grpNyName)
{
var age = item.Name;
var numInGroup = item.Count;
}
var grpByAge2 = from p in context.Persons
group p by p.Age into g
orderby g.Key
select new { Age = g.Key, Count = g.Count() };
foreach (var item in grpByAge2)
{
var age = item.Age;
var numInGroup = item.Count;
}
}