问题描述
请注意是EntitySql,也就是字串.结构如下:nameagea1b1c2d2e3按年龄分组并取每个组的第一条数据,结果如下:nameagea1c2e3谢谢了!因为对entitysql不太熟悉,望高考赐教!
解决方案
解决方案二:
idnameage1a12b13c24d25e3varret=fromuserindc.Usersgroupuserbyuser.ageintogselectnew{name=g.OrderByAscending(t=>t.id).Select(t=>t.name).First(),age=g.Key};foreach(varvinret){Response.Write("name={0}age={1}",v.name,v.age);}
解决方案三:
引用楼主aizaiyurenjie163的回复:
请注意是EntitySql,也就是字串.结构如下:nameagea1b1c2d2e3按年龄分组并取每个组的第一条数据,结果如下:nameagea1c2e3谢谢了!因为对entitysql不太熟悉,望高考赐教!
varquery=db.TableA.GroupBy(a=>a.age).Select(g=>newTableA{name=g.FirstOrDefault().name,age=g.Key});
解决方案四:
兄弟,谢谢你!但我要的是entitysql,不是C#表达式。entitysql是以字串形式存在的。引用楼主aizaiyurenjie163的回复:
请注意是EntitySql,也就是字串.结构如下:nameagea1b1c2d2e3按年龄分组并取每个组的第一条数据,结果如下:nameagea1c2e3谢谢了!因为对entitysql不太熟悉,望高考赐教!
解决方案五:
兄弟,谢谢你!但我要的是entitysql,不是C#表达式。entitysql是以字串形式存在的。引用2楼q107770540的回复:
引用楼主aizaiyurenjie163的回复:请注意是EntitySql,也就是字串.结构如下:nameagea1b1c2d2e3按年龄分组并取每个组的第一条数据,结果如下:nameagea1c2e3谢谢了!因为对entitysql不太熟悉,望高考赐教!varquery=db.Tabl……
解决方案六:
顶啊,请求高手赐教!
解决方案七:
selecttop1name,agefromtablegroupbyage
解决方案八:
顶啊,还有人吗?
解决方案九:
EntitySQL估计是最少用到的一种方式吧,通常都采用QueryBuilder或者Linq的方式。其实查看Linq生成的EntitySQL也是很方便的,在VS2010里打个断点就能直接看了。这是我阅读《ProgrammingEntityFramework》时找到的一个办法,呵呵。varquery=context.Ages.GroupBy(g=>g.Age).Select(r=>r.FirstOrDefault());
生成的EntitySQL为:{SELECT[Limit1].[Name]AS[Name],[Limit1].[Age]AS[Age]FROM(SELECTDISTINCT[Extent1].[Age]AS[Age]FROM[dbo].[PersonAges]AS[Extent1])AS[Distinct1]OUTERAPPLY(SELECTTOP(1)[Extent2].[Name]AS[Name],[Extent2].[Age]AS[Age]FROM[dbo].[PersonAges]AS[Extent2]WHERE[Distinct1].[Age]=[Extent2].[Age])AS[Limit1]}
解决方案十:
selecttop(1)name,kfromtableasagroupbyageask
解决方案十一:
这是Sql不是EntitySql,谢谢。引用8楼abbey的回复:
EntitySQL估计是最少用到的一种方式吧,通常都采用QueryBuilder或者Linq的方式。其实查看Linq生成的EntitySQL也是很方便的,在VS2010里打个断点就能直接看了。这是我阅读《ProgrammingEntityFramework》时找到的一个办法,呵呵。C#codevarquery=context.Ages……
解决方案十二:
这个不行的引用9楼q107770540的回复:
selecttop(1)name,kfromtableasagroupbyageask
解决方案十三:
我目前试验出这个方法,可以得到结果,但我感觉还是不太好用,谁有没有更好的方法?stringeSql="selectvalue(selecttop(1)c2fromGroupPartition(c)asc2)fromTestEntities.Customerascgroupbyc.Age";varquery=db.CreateQuery<List<DbDataRecord>>(eSql).ToList();varcustomers=fromitinqueryselectit[0][0]asEntities.Customer;foreach(varcincustomers)Console.WriteLine("Name:{0},Age:{1}",c.Name,c.Age);