public void TestLinqOrderByDate()
{
var connectionString = GetConnectionString("TestLinqOrderByDate");
var context = new MyEntityContext(connectionString);
var pe = context.Persons.Create();
pe.Name = "Eddie";
pe.DateOfBirth = new DateTime(1969, 8, 8, 4, 5, 30);
var pb = context.Persons.Create();
pb.Name = "Bill";
pb.DateOfBirth = new DateTime(1900, 1, 12);
var pf = context.Persons.Create();
pf.Name = "Freddie";
pf.DateOfBirth = new DateTime(1969, 8, 8, 4, 6, 30);
var pd = context.Persons.Create();
pd.Name = "Dennis";
pd.DateOfBirth = new DateTime(1962, 4, 20);
var pc = context.Persons.Create();
pc.Name = "Carole";
pc.DateOfBirth = new DateTime(1962, 3, 11);
var pa = context.Persons.Create();
pa.Name = "Annie";
pa.DateOfBirth = new DateTime(1950, 2, 2);
context.SaveChanges();
Assert.AreEqual(6, context.Persons.Count());
var orderedByDob = context.Persons.OrderBy(p => p.DateOfBirth);
Assert.IsNotNull(orderedByDob);
Assert.AreEqual(6, orderedByDob.Count());
var i = 0;
foreach (var p in orderedByDob)
{
Assert.IsNotNull(p.Name);
Assert.IsNotNull(p.DateOfBirth);
switch (i)
{
case 0:
Assert.AreEqual("Bill", p.Name);
break;
case 1:
Assert.AreEqual("Annie", p.Name);
break;
case 2:
Assert.AreEqual("Carole", p.Name);
break;
case 3:
Assert.AreEqual("Dennis", p.Name);
break;
case 4:
Assert.AreEqual("Eddie", p.Name);
break;
case 5:
Assert.AreEqual("Freddie", p.Name);
break;
}
i++;
}
var orderedByDobDesc = context.Persons.OrderByDescending(p => p.DateOfBirth);
Assert.IsNotNull(orderedByDobDesc);
Assert.AreEqual(6, orderedByDobDesc.Count());
var j = 0;
foreach (var p in orderedByDobDesc)
{
Assert.IsNotNull(p.Name);
Assert.IsNotNull(p.DateOfBirth);
switch (j)
{
case 5:
Assert.AreEqual("Bill", p.Name);
break;
case 4:
Assert.AreEqual("Annie", p.Name);
break;
case 3:
Assert.AreEqual("Carole", p.Name);
break;
case 2:
Assert.AreEqual("Dennis", p.Name);
break;
case 1:
Assert.AreEqual("Eddie", p.Name);
break;
case 0:
Assert.AreEqual("Freddie", p.Name);
break;
}
j++;
}
}