博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
EF架构~有时使用SQL更方便
阅读量:7114 次
发布时间:2019-06-28

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

在进行统计时,尤其是按月进行统计,由于我们采用的时间是一个2015-12-12日这种,所以在linq你无法进行拆分,你拆分了在发到SQL时也会报错,因为SQL那边更新不需要你.net的方法,人家SQL只认自己的方法,哈哈,这也是正常的,为了解决这个问题,我们有时也需要使用纯SQL,当前也是基于EF的,通过EF的上下文把SQL语句发到数据库。

下面是一个比较复杂的统计,按月把某个用户的某个任务进行求和及求总数的统计,看一下代码

       var idArr = user_FighterRepository.GetModel(i => i.ParentID == companyId).Select(i => i.UserID).ToList();            string para= string.Join(",", idArr);            var linq = Db.Database.SqlQuery
( @"SELECT CONVERT(CHAR(7), Day, 120) as TotalDate, COUNT(*) as TaskCount, FighterID , SUM(FinishedNumber) as FinishedCount FROM dbo.Count_Fighter_ByDay GROUP BY FighterID , CONVERT(CHAR(7), Day, 120) HAVING FighterID IN ("+para+")"); return linq.ToList();

看你下SQL的结果

再看一下网页上显示的结果

最后需要注意一点,就是你的SQL语句的每个字段必须要有别名,如你的count(*)统计,需要为它起的别名,并且你的别名要和EF映射的实体属性对应!

本文转自博客园张占岭(仓储大叔)的博客,原文链接:,如需转载请自行联系原博主。

你可能感兴趣的文章
编译Android AOSP代码
查看>>
css 中 stick footer 布局实现
查看>>
Entity Framework 4 in Action读书笔记——第二章:开始Entity Framework之旅(3)
查看>>
Linux 软链接 硬链接 ln命令(繁杂版)
查看>>
ueditor asp.net版本更改图片保存路径
查看>>
.net MVC使用Aspose.Words 获取文本域获取文档
查看>>
即使没有翅膀,心。。。。。。也要飞翔
查看>>
VMware Esxi5.5中嵌套虚拟机的网络设置方法
查看>>
[转载] 七龙珠第一部——第044话 危机四起
查看>>
[转载] 民兵葛二蛋——第28集
查看>>
Wiki上的Ue4文件结构以及命名规范
查看>>
图片滚动代码
查看>>
ubuntu下安装chrome
查看>>
初阶html学习总结(一)(转)
查看>>
Mysterious Antiques in Sackler Museum(判断长方形)
查看>>
PHP字符串的总结
查看>>
百度搜索附近加盟店等基于LBS云搜索功能的实现
查看>>
89. Gray Code
查看>>
差分约束心得
查看>>
ZooKeeper开发手册中文翻译(转)
查看>>