首页 新闻 会员 周边 捐助

Linq关于Count()的查询,怎样写可以转换为select count(1)的sql语句呢?

0
悬赏园豆:5 [待解决问题]

比如简单的 select count(1) from Table_A 查询表A的数据条数 ,用linq 可以写成:

1.Table_A.Count() 

2.(from x in Table_A 

   select x).Count()

这两种方式生成的SQL语句都是select count(*) from Table_A 

请问如何可以生成 select count(1) from Table_A  呢?

EpicOfGilgamesh的主页 EpicOfGilgamesh | 初学一级 | 园豆:189
提问于:2017-08-30 10:21
< >
分享
所有回答(4)
0

linq不行,我记得ef下面有对应的拦截器,拦截下sql替换下

Daniel Cai | 园豆:10424 (专家六级) | 2017-08-30 10:27
0

你要相信.写ef的人写的sql肯定比你好.你能想到的问题人家肯定也想到了.

人家不那样弄原因有2个.1-你的想法是错的 2-你的想法没意义

吴瑞祥 | 园豆:29449 (高人七级) | 2017-08-30 10:31

    我并没有说ef不好,只是想知道这种情况要如何处理

支持(0) 反对(0) EpicOfGilgamesh | 园豆:189 (初学一级) | 2017-08-31 15:26

@EpicOfGilgamesh: 我的话的意思是不用处理..

至于你说的差距很大.可以找原因.

PS:我也觉得应该要count(1)

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2017-08-31 15:27

@吴瑞祥: 好的,谢谢你的回答

支持(0) 反对(0) EpicOfGilgamesh | 园豆:189 (初学一级) | 2017-08-31 15:32
0

ef使用时要求表必须有主键,既然有主键了,那么count(1)和count(*)就没有任何区别了

刘宏玺 | 园豆:14020 (专家六级) | 2017-08-30 11:57

 在有主键的情况下,两种一样么?为什么我这边查询时间差距很大?

支持(0) 反对(0) EpicOfGilgamesh | 园豆:189 (初学一级) | 2017-08-31 15:27

@EpicOfGilgamesh: 有主键就应该是一样的,因为有主键就不会有null值,没有null值就一样了

支持(0) 反对(0) 刘宏玺 | 园豆:14020 (专家六级) | 2017-08-31 15:28

@刘宏玺: 多谢解答

支持(0) 反对(0) EpicOfGilgamesh | 园豆:189 (初学一级) | 2017-08-31 15:31
0

.FirstOrDefault()可以实现应该

姚刘乐 | 园豆:70 (初学一级) | 2017-09-08 16:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册