比如简单的 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 呢?
linq不行,我记得ef下面有对应的拦截器,拦截下sql替换下
你要相信.写ef的人写的sql肯定比你好.你能想到的问题人家肯定也想到了.
人家不那样弄原因有2个.1-你的想法是错的 2-你的想法没意义
我并没有说ef不好,只是想知道这种情况要如何处理
@EpicOfGilgamesh: 我的话的意思是不用处理..
至于你说的差距很大.可以找原因.
PS:我也觉得应该要count(1)
@吴瑞祥: 好的,谢谢你的回答
ef使用时要求表必须有主键,既然有主键了,那么count(1)和count(*)就没有任何区别了
在有主键的情况下,两种一样么?为什么我这边查询时间差距很大?
@EpicOfGilgamesh: 有主键就应该是一样的,因为有主键就不会有null值,没有null值就一样了
@刘宏玺: 多谢解答
.FirstOrDefault()可以实现应该