开发者

Basic SQL count with LINQ

开发者 https://www.devze.com 2023-02-19 06:49 出处:网络
I have a trivial issue that I can\'t resolve. Currently our app uses Linq to retrieve data and get a basic integer value of the row count. I can\'t form a query that gives back a count without a \'sel

I have a trivial issue that I can't resolve. Currently our app uses Linq to retrieve data and get a basic integer value of the row count. I can't form a query that gives back a count without a 'select i'. I don't need the select, just the count(*) response. How do I do this? Below is a sample:

return (from io in db._Owners
           where io.Id == Id && io.userId == userId
  开发者_高级运维         join i in db._Instances on io.Id equals i.Id **select i**).Count()

;


The select i is fine - it's not actually going to be fetching any data back to the client, because the Count() call will be translated into a Count(something) call at the SQL side.

When in doubt, look at the SQL that's being generated for your query, e.g. with the DataContext.Log property.


Using the LINQ query syntax requires a select statement. There's no way around that.

That being said, the statement will get transformed into a COUNT()-based query; the select i is there only to satisfy the expression system that underlies the LINQ query providers (otherwise the type of the expression would be unknown).


Including the select will not affect the performance here because the final query will get translated into SQL. At this point it will be optimized and will be like select (*) from ......

0

精彩评论

暂无评论...
验证码 换一张
取 消