问个简单的linq语句

lovebaby 2015-08-03 03:41:44
如下linq语句

var s = (from p in ctx.mm_Tags select p).Count();

生成SQL为:
SELECT COUNT(*) AS [value] FROM [dbo].[mm_Tags] AS [t0]


COUNT为*,如果是这样COUNT指定某一列,该如何写LINQ呢?
如SQL:
SELECT COUNT(TagsID) AS [value] FROM [dbo].[mm_Tags] AS [t0]

应该怎样写LINQ?
...全文
690 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxiangqing 2015-09-16
  • 打赏
  • 举报
回复
SELECT COUNT(TagsID) AS [value] FROM [dbo].[mm_Tags] AS [t0]-->如果TagsID为null,就不会统计进来,所以还是跟count(*)有区别
lovebaby 2015-09-16
  • 打赏
  • 举报
回复
那执行效率上呢
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
直接 var query = new { count = ctx.mm_Tags.Count() };
这个吧 你可以都试试 就知道了那个是你想要的效果了
mingcsharp 2015-09-10
  • 打赏
  • 举报
回复
引用 4 楼 caozhy 的回复:
直接 var query = new { count = ctx.mm_Tags.Count() };
引用 10 楼 t900407 的回复:
ctx.mm_Tags.Select(a=>a.TagsID).Count()
?小白路过,打个酱油
这样不行么?
lovebaby 2015-08-13
  • 打赏
  • 举报
回复
这样说来count(*)和count(某个字段)其执行效率是一样的?
  • 打赏
  • 举报
回复
其实在sql server看来是一样的吧 字段是属性这条纪录的,统计这个字段数据的量跟行数其实是一样的,你可以对比一下查询计划 有SQL版,很多人统计数量直接写常量select count(1) from table where xxx,其实都一样 但是select就不一样了
t900407 2015-08-13
  • 打赏
  • 举报
回复
ctx.mm_Tags.Select(a=>a.TagsID).Count()
?小白路过,打个酱油
lovebaby 2015-08-13
  • 打赏
  • 举报
回复
有人知道吗?
gw6328 2015-08-06
  • 打赏
  • 举报
回复
count(*)与count(id)是的一样,可能都生成一种。
lovebaby 2015-08-04
  • 打赏
  • 举报
回复
上不了图了,生成的SQL还是:
SELECT COUNT(*) AS [value]
FROM [dbo].[mm_Tags] AS [t0]
lovebaby 2015-08-04
  • 打赏
  • 举报
回复
lovebaby 2015-08-04
  • 打赏
  • 举报
回复
用Sql server profiler跟踪了一下,还是不对。
threenewbee 2015-08-03
  • 打赏
  • 举报
回复
直接 var query = new { count = ctx.mm_Tags.Count() };
  • 打赏
  • 举报
回复
where TagsID!=null 但是问题是,你的 TagsID 真的会是 null 吗?如果不会,那么就没有必要去查询 COUNT(TagsID)。
lovebaby 2015-08-03
  • 打赏
  • 举报
回复
p.count?有这个方法?
wx8849 2015-08-03
  • 打赏
  • 举报
回复

    var s = (from p in ctx.mm_Tags select new{a=p.count(id)}).Count();

8,497

社区成员

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

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