.Net Code
using (testEntities TestEntity = new testEntities())
{
#region linq to entities 内容练习2
#region 父子关系表查询
/*
var maxScorePerClass = from s in TestEntity.stuinfo
group s by s.classID into s1
select new
{
classid = s1.Key,
stuinfo = from s2 in s1
where s2.score == s1.Max(p => p.score)
select s2
};
foreach (var sc in maxScorePerClass) //stuinfo 为 IEnumerable<stuinfo> 类型
{
Console.WriteLine("classID:{0}", sc.classid);
Console.WriteLine("每班最高分数:{0}", sc.stuinfo.First().score);
}
Console.WriteLine();
*/
#endregion
#region 查询每班低于平均成绩的学生
/*
var LitThanAvgScorePerClass = from s in TestEntity.stuinfo
group s by s.classID into s1
select new
{
classid = s1.Key,
stuinfo = from s2 in s1
where s2.score <= s1.Average(p => p.score)//修改此处,可查每班最低成绩、最高成绩等
select s2
};
// Console.Clear();
foreach (var sc in LitThanAvgScorePerClass) //stuinfo 为 IEnumerable<stuinfo> 类型
{
Console.WriteLine("每班低于平均分数-classID:{0}", sc.classid);
foreach (var stu in sc.stuinfo)
{
Console.WriteLine("分数:{0}", stu.score);
}
}
Console.WriteLine();
*/
#endregion
#region 模糊查询---相当于like
/*
var querylike = from s in TestEntity.stuinfo
where s.username.Contains("pkm") //相当于like '%pkm%'
select s;
foreach (var s in querylike)
{
Console.WriteLine(s.username);
}
Console.WriteLine();
*/
#endregion
#region 编译查询--类似于函数
/*
var function = CompiledQuery.Compile((testEntities edm1, string user)//参数
=> from s in edm1.stuinfo
where s.username == user
select s
);
var stu001 = function(TestEntity, "pkm001");//调用编译查询
foreach (var s in stu001)
{
Console.WriteLine(s.username);
}
Console.WriteLine();
*/
#endregion
#region any查询,相当于 in
/*
IQueryable<long> classIDs = TestEntity.classinfo.Select(c => c.classID);
var inValues = from s in TestEntity.stuinfo
where classIDs.Any(id => id == s.classID)
select s;
foreach (var s in inValues)
{
Console.WriteLine(s.username);
}
Console.WriteLine();
*/
#endregion
#region 插入数据--相当于insert
/*
var newStudent = new stuinfo()
{
username = "test0003",
userpwd = "test0003",
score = 95,