问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用Linq的好处是什么?

发布网友 发布时间:2022-04-08 22:58

我来回答

3个回答

懂视网 时间:2022-04-09 03:19

querySql = rel_project_personservice.GetItems(r => r.Person).Where(w => w.ProjectId == projectId && w.Person.College.University.Province == provinceName);

转化的SQL语句:

SELECT "Extent1"."personid", "Extent1"."projectid", "Extent1"."isallotroom", "Extent1"."randomcode", "Extent1"."admissionticket", 
"Extent1"."pushstatus", "Extent1"."createdtime", "Extent1"."examinationroomid", "Extent2"."id", "Extent2"."name", "Extent2"."idnumber",
 "Extent2"."gender", "Extent2"."mobile", "Extent2"."idcard", "Extent2"."email", "Extent2"."degree", "Extent2"."nation", "Extent2"."major", 
"Extent2"."graduatedate", "Extent2"."livingcity", "Extent2"."accountlocation", "Extent2"."expectcity", "Extent2"."enterprisenature", 
"Extent2"."expectindustry", "Extent2"."expectjob", "Extent2"."collegeid", "Extent2"."status", "Extent2"."signuptype", 
"Extent2"."createdtime" AS "createdtime1", "Extent2"."modifiedtime", "Extent2"."createdby", "Extent2"."modifiedby", 
"Extent2"."classname", "Extent2"."idcardtype", "Extent2"."birthday", "Extent2"."xzid", "Extent2"."szid", "Extent2"."testcity", 
"Extent2"."graduateschool", "Extent2"."degreeid", "Extent2"."nationid", "Extent2"."majorid", "Extent2"."accountlocationid", 
"Extent2"."livingcityid", "Extent2"."expectcityid", "Extent2"."enterprisenatureid", "Extent2"."expectindustryid", 
"Extent2"."expectjobid", "Extent2"."testcityid" FROM "public"."rel_project_person" AS "Extent1" INNER JOIN "public"."person" AS "Extent2" 
ON "Extent1"."personid" = "Extent2"."id" LEFT OUTER JOIN "public"."college" AS "Extent3" ON "Extent2"."collegeid" = "Extent3"."id"
 LEFT OUTER JOIN "public"."university" AS "Extent4" ON "Extent3"."universityid" = "Extent4"."id" 
 WHERE "Extent1"."projectid" = 11 AND ("Extent4"."province" = ‘北京‘ OR "Extent4"."province" IS NULL )

linq转出来的语句在数据库上执行,花费40多秒:

Total query runtime: 40.1 secs
检索到 100127 行。

实现同样的业务,自己写的sql语句:

Select C.UNIVERSITYID,c.name,count(p.id)
from Person p
join Rel_Project_Person R on P.id =R.PersonID
join College C on p.CollegeID = C.id
where R.ProjectId =11 and C.universityid IN
(
Select id from University where Province = ‘北京‘
)
group by C.UNIVERSITYID,c.name

执行自己写的sql,花费不到1秒:

Total query runtime: 680 msec
检索到 2 行。

 

不要轻易使用linq代替sql

标签:

热心网友 时间:2022-04-09 00:27

LINQ,语言集成查询(Language INtegrated Query)是一组用于c#和Visual Basic语言的扩展。它允许编写C#或者Visual Basic代码以查询数据库相同的方式操作内存数据。

语言集成查询 (LINQ) 是一组技术的名称,这些技术建立在将查询功能直接集成到 C# 语言(以及 Visual Basic 和可能的任何其他 .NET 语言)的基础上。 借助于 LINQ,查询现在已是高级语言构造,就如同类、方法、事件等等。

对于编写查询的开发人员来说,LINQ 最明显的“语言集成”部分是查询表达式。 查询表达式是使用 C# 3.0 中引入的声明性查询语法编写的。 通过使用查询语法,您甚至可以使用最少的代码对数据源执行复杂的筛选、排序和分组操作。 您使用相同的基本查询表达式模式来查询和转换 SQL 数据库、ADO.NET 数据集、XML 文档和流以及 .NET 集合中的数据。

好处:
1、无需复杂学习过程即可上手   
2、编写更少代码即可创建完整应用。   
3、更快开发错误更少的应用程序。   
4、无需求助奇怪的编程技巧就可合并数据源。   
5、让新开发者开发效率更高。   
6、任何对象或数据源都可以定制实现Linq适配器,为数据交互带来真正方便。

热心网友 时间:2022-04-09 01:45

你应该先搞清楚Linq 与Linq To Sql 和Linq to Entity 之间的区别....
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
容易发财的房地产中介公司名字 我想对自己的房子进行房产评估,去哪里办理,需要... 改字体的时候不小心改错了,全变成格仔了怎么办 手机文件不小心改错名字了怎么办 女生每天早晚各跑步一个小时,配合饮食,一个月瘦多少? 每天早晚各慢跑一小时.一个月能瘦多少斤 爱剪辑怎么去水印 给视频去水印方法 游戏本关机时可以晃吗? 笔记本玩游戏CPU温度高,会花屏 打剑网三一小时声音大,发热,还能继续吗? 辩论会辩题学习方面的 “网络更多的是帮助学生学习”关于辩论赛题目 班上举行辩论赛题目为“学习是为了谁?”正方是学习是为了自己,反方是学习是为了他人,我是反方。 辩论赛题目思考与学习哪个更重要 明天要参加辩论赛,辩题是:读书是以学习知识还是培养情操为主?我方观点是培养情操为主,求一辩辩词! 辩论赛:辩题是大学读书益精 关于青春努力学习的辩论赛 辩论赛题目我学习我快乐 我要参加学校辩论赛,辩题是"学习以学为先还是以问为先”! 良好的学习成绩由学生决定辩论赛!!我是反方,四辩,求自由辩论的问题和总结陈词!!急!! 辩论赛:知识是学习的目的还是学习的工具? 辩论赛的辩词辩题:学习有没有用 辩论赛辩题:为了学习而工作,还是为了工作而学习?我们是反方:为了学习而工作,各位高手,帮帮忙啊! 辩论赛:能够证明学习方法比学习勤奋更重要的辩词 有一个辩题:正方认为学习要刻苦.反方认为学习要掌握方法.如果我选正方,我该这样辩论? 学习辩论赛。辩题:学习能否改变命运。我是反方,也就是:学习不能改变命运。求解~~~~!!! 关于“学习对未来有没有帮助”的辩论会? 豌豆公主的新篇故事!不能和以前内容相同! 豌豆公主能看别人的资料,加好友吗? 谁能帮我翻译一下豌豆公主 负数怎么成为正数? oppo r9手机图标怎么变小? OPPO R9s 怎么更换自定义图标? oppor9怎么到桌面添加小插件 oppo r9 plusm A的桌面图标怎么调大小。 在吗?你好!我们家房屋顶里有老鼠窝,请问该怎么办?求解答! - 信息提示 用华为拨打了,*#*#4838#*#,拨打后显示mmi,这是啥意思啊? mmi码已启动怎么办花钱吗? kangol手表盒有1938是什么意思?多少钱? kangol手表什么档次 kangol手表男士手表价格? 求总结linq与sql语法比较 威博电热水器出现E2是怎么回事,我的热水器调到50度为什么烧到33就不动了? 小牛n1能直上ngt仪表吗 磁保持继电器的结构是怎样的,有什么工作原理和功能啊? 磁保持继电器的作用 磁保持继电器与自保持继电器的区别 磁保持继电器原理 磁保持继电器的工作原理是怎样的?