Search code examples
.netlinq-to-sqlscalar

Scalar function in LinqToSql


In ADO.Net/SQLClient I would often do something like this:

SELECT COUNT(*) FROM SomeTable WHERE SomeKey = 1234

...and fire it using executescalar to return the value of count - for a simple check if something exists.

How would I do the same using LinqToSql?


Solution

  • if (context.SomeTable.Any(row => row.SomeKey == 1234))
    {
        DoStuff();
    }
    

    You could also use Count().

    if (context.SomeTable.Count(row => row.SomeKey == 1234) > 0)
    {
        DoStuff();
    }
    

    But this requires always to go through all rows while Any() can return after the first matching row - so Any() might have better performance.