求一个SQL语句的linq写法

bakhpl 2011-08-31 05:07:37
select CONVERT(varchar(12) ,logtime, 102 ), count(*) as s from log group by CONVERT(varchar(12) ,logtime, 102 )


请问linq该怎么写,我这样写报错:
var m = from c in db.log group c by ((DateTime)c.logtime).ToShortDateString() into g select new { logtitle = g.Key, sum = g.Count() };
...全文
89 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
bakhpl 2011-09-01
  • 打赏
  • 举报
回复
查到资料,看样子,我只能先这样写了。
var m = from c in db.log
group c.logid by new
{
((DateTime)c.logtime).Year,
((DateTime)c.logtime).Month,
((DateTime)c.logtime).Day
}
into g

select new
{
YY=g.Key.Year,
mm=g.Key.Month,
dd = g.Key.Day,
sum = g.Count()
};
return View(m);
}
bakhpl 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用楼主 bakhpl 的回复:]
select CONVERT(varchar(12) ,logtime, 102 ), count(*) as s from log group by CONVERT(varchar(12) ,logtime, 102 )


请问linq该怎么写,我这样写报错:
var m = from c in db.log group c by ((DateTime)c.logtime).ToS……
[/Quote]
我是这样写的,报错
丰云 2011-08-31
  • 打赏
  • 举报
回复
我的意思是,
既然c.logtime本来就是DateTime类型,
你何必还要强转呢????

直接c.logtime.ToShortDateString()就可以了!!!!
bakhpl 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lmaohuanl 的回复:]
直接DateTime转换不就行了么
[/Quote]

转出来报错,
var m = from c in db.log group c by ((DateTime)c.logtime).Year into g select new { logtitle = g.Key, sum = g.Count() };
我这样子写,它就可以
但是这样只取到年份,我想连日期一起group by
萧炎 2011-08-31
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bakhpl 的回复:]
是啊,但是我现在只想取年月日。不要后面的时间
[/Quote]
这个直接getyear()、getmonth()、getday()就可以
萧炎 2011-08-31
  • 打赏
  • 举报
回复

var list = (from s in dao.FindAll()
select new
{
s.StuNo,
s.StuName,
s.StuSex,
s.StuAge,
s.Classic.ClassName
}).AsQueryable();
return list;
LMAOhuaNL 2011-08-31
  • 打赏
  • 举报
回复
直接DateTime转换不就行了么
bakhpl 2011-08-31
  • 打赏
  • 举报
回复
是啊,但是我现在只想取年月日。不要后面的时间
丰云 2011-08-31
  • 打赏
  • 举报
回复
(DateTime)c.logtime).ToShortDateString() ??????

你的logtime不是DateTime类型吗?????
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开发。

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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