sql to linq的写法,数据库为mysql,开发语言c#

im_yh 2018-07-20 10:23:37
select a.ID,A.NAME, w.online,w.offline,w.sum2  from schools a
LEFT JOIN
(SELECT school_id,
sum(if (work_status = 1,1,0)) AS online,
sum(if (work_status = 2,1,0)) AS offline,
count( work_status ) AS sum2
FROM devices
GROUP BY school_id) w on a.id = w.school_id
where a.name like '%北京%';
...全文
455 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2018-07-21
  • 打赏
  • 举报
回复
where x.name.Contains("北京");
->
where r.name.Contains("北京");
threenewbee 2018-07-21
  • 打赏
  • 举报
回复
from r in (from a in schools
join w in devices.GroupBy(x => x.school_id).Selext(x => {
school_id = x.Key,
online = x.Where(y => y.work_status== "1,1,0").Sum(y => y.work_status), //这里没看懂,不一定对,什么1,1,0
offline = x.Where(y => y.work_status== "2,1,0").Sum(y => y.work_status),
sum2 = x.Count() })
on a.id equals w.school_id
select new { a.ID,A.NAME, w.online,w.offline,w.sum2 })
where x.name.Contains("北京");
圣殿骑士18 2018-07-20
  • 打赏
  • 举报
回复
这个复杂度的sql,不建议用linq写。写出linq会很复杂难读,而且最终翻译的sql不如原始sql简洁,执行的效率也不高。
丰云 2018-07-20
  • 打赏
  • 举报
回复
到底想说什么????????

问个问题,搞得人莫名其妙的。。。。。
DNetORM源码 源码描述: 一、源码介绍 1、DNetORM 是一款基于.net的轻量级的、轻配置的ORM框架,核心代码只有100K大小,支持SQLSERVER、MYSQL、ORACLE数据库,DNetORM的核心思想是,将最接近原生的C#代码映射出最符合场景的sql语句,从而最大程度提升开发效率。 2、为什么要开发一款orm框架,笔者在开发的这些年里,使用了很多框架,有第三方的譬如mybatis、nhibernate、ef等等,但是它们都不符合我的开发习惯,首先我喜欢轻配置,不喜欢将大量的sql语句写在配置文件里,也不喜欢将实体映射关系写在配置文件里,所以像mybatis、nhibernate这种重配置的orm我并不喜欢,EF算是一个功能强大的框架,但是EF也有一些缺陷,过于笨重,另外EF对于mysql、oracle的支持并不友好。另外还有一些其他框架接口封装的不友好、要么写法过于繁琐、要么接口不清晰,这些因素都是促使我写一个符合我的开发场景的orm 3、DNetORM使用起来非常简单,DNetORM拒绝封装过多的方法,这会造成使用的难度,只是封装了增删改查基本常用的一些方法,所以使用起来会非常简单。 4、DNetORM对于多表的联查进行了常规的封装支持了LEFT JOIN, INNER JOIN ,GROUP BY , ORDER BY, WHERE,对于复杂的写法,建议使用DNetORM提供的SQL查询接口,我们在开发中使用orm是为了提升开发效率,节省开发时间,这是为什么使用orm的目的,orm不是为了避免使用sql,实际开发中有很多查询语句会很复杂,如果依赖orm,首先orm即使支持的话也会写的很复杂,并不直观,以往有开发的筒子们在用linq实现相同的复杂一点的sql的时候,写个sql也就是5分钟,但是为了实现linq写法写了半小时,还写的不正确,所以这些都是违背开发精神的。所以ORM是一个开发工具,它的出现就是为了节省开发时间、提升开发效率,使用orm可以帮你解决增删改的繁杂琐事,在查询上,orm帮你处理了大部分的单表查询,在多表的查询上,orm帮你处理简单的多表查询,帮你最快的获取数据,至于复杂的sql查询,直接使用sql查询接口。也许这种做法更加合理。 二、注意事项 1、开发环境为Visual Studio 2015,使用.net 4.0开发。

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧