public void TestLinqSelectMany()
{
var connectionString = GetConnectionString("TestLinqSelectMany");
var context = new MyEntityContext(connectionString);
var skill1 = context.Skills.Create();
skill1.Name = "C#";
var skill2 = context.Skills.Create();
skill2.Name = "HTML";
var p1 = context.Persons.Create();
p1.Name = "Jane";
p1.Skills.Add(skill1);
p1.Skills.Add(skill2);
var skill3 = context.Skills.Create();
skill3.Name = "SQL";
var skill4 = context.Skills.Create();
skill4.Name = "NoSQL";
var p2 = context.Persons.Create();
p2.Name = "Bob";
p2.Skills.Add(skill3);
p2.Skills.Add(skill4);
var skill5 = context.Skills.Create();
skill5.Name = "Graphics";
var p3 = context.Persons.Create();
p3.Name = "Jez";
p3.Skills.Add(skill5);
var skill6 = context.Skills.Create();
skill6.Name = "CSS";
context.SaveChanges();
Assert.AreEqual(3, context.Persons.Count());
Assert.AreEqual(6, context.Skills.Count());
var daskillz = context.Persons.SelectMany(owners => owners.Skills);
var i = 0;
foreach(var s in daskillz)
{
i++;
Assert.IsNotNull(s.Name);
}
Assert.AreEqual(5, i);
Assert.AreEqual(5, daskillz.Count());
}