博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pkm的linq to Entities学习2
阅读量:5225 次
发布时间:2019-06-14

本文共 6363 字,大约阅读时间需要 21 分钟。

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
类型 { 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
类型 { 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
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, age = 30, classID = 2, CreateTime = DateTime.Now }; TestEntity.AddTostuinfo(newStudent); //TestEntity.AddObject("stuinfo", newStudent); //这句的上面一句是一样的 TestEntity.SaveChanges(); Console.Write("添加数据成功!"); */ #endregion #region 修改数据 -- update /* var toModify = (from s in TestEntity.stuinfo where s.id == 9 select s).FirstOrDefault(); toModify.userpwd = "test"; TestEntity.SaveChanges(); //修改之后进行保存就行了。 */ #endregion #region 删除数据 delete /* var toDelete = (from s in TestEntity.stuinfo where s.id == 10 select s).FirstOrDefault(); TestEntity.DeleteObject(toDelete); TestEntity.SaveChanges(); */ #endregion #region 删除前不查询,只指定主键的值 var deleteStu = new stuinfo { id = 9 }; MyEntity.AttachTo("stuinfo", deleteStu); MyEntity.DeleteObject(deleteStu); MyEntity.SaveChanges();//如果有此主键则删除,否则将出异常。要使用try…catch…包含 #endregion #region 查询结果转换为 List,Array,Dictionary var tempstudents = from s in TestEntity.stuinfo where s.CreateTime.Value.Year == 2012 select s; //stuinfo[] array = tempstudents.ToArray(); //List
list = tempstudents.ToList(); Dictionary
dict = tempstudents.ToDictionary(s => s.id); foreach (var s in dict.Values) { Console.WriteLine("用户:{0},密码:{1}", s.username, s.userpwd); } Console.WriteLine(); #endregion #endregion }

转载于:https://www.cnblogs.com/pukuimin/archive/2012/08/26/2988100.html

你可能感兴趣的文章
data_summarize.pl data目录文本时长汇总脚本
查看>>
Python基础-集合
查看>>
memo1.Font.style
查看>>
移动端弹窗 layer.js 使用
查看>>
RecyclerView实现Gallery画廊效果
查看>>
C语言-运算符
查看>>
(转)python学习笔记5--decimal
查看>>
[BZOJ 5323][Jxoi2018]游戏
查看>>
编程面试的10大算法概念汇总
查看>>
【蒟蒻周报】思维与结论的碰撞 9.17-9.23
查看>>
一个软件经历的阶段
查看>>
自我介绍
查看>>
毕业后第一份工作程序员应该做多久?
查看>>
Load generator连接失败的解决办法!(转)
查看>>
codevs 3295 落单的数
查看>>
演练:实现支持基于事件的异步模式的组件
查看>>
STM32 HAL库学习系列第7篇---定时器TIM 输入捕获功能
查看>>
键盘的出现于隐藏(解决键盘弹出时会覆盖文本框的问题,代码实现)
查看>>
当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'T_Shell' 中的标识列插入显式值。
查看>>
JSON对象和字符串之间的相互转换 – JSON.parse() 和 JSON.stringify()
查看>>