Технически наиболее эффективным способом, вероятно, будет использование метода расширения Any()
. Если вы возвращаете объект, есть стоимость заполнения этого объекта. Если вы возвращаете счетчик, то стоит пройти каждую запись (после применения условия where) и подсчитать их. Any()
должен использовать Exists
в sql, и, следовательно, SQL-сервер может остановиться, как только найдет первую запись.
В конечном счете, я согласен с другими, это не то место, где вы хотите начать оптимизацию сразу. Дональд Кнут, вероятно, имеет лучшую цитату по этому поводу:
«Мы должны забыть о малой эффективности, скажем, в 97% случаев: преждевременная оптимизация - корень всего зла».
Например, допустим, у вас есть этот метод, возвращающий bool, и вы используете метод Any()
. Позже в запросе вам может потребоваться вытащить объект пользователя из базы данных (это может быть чем-то, что вы в конечном итоге делаете много). Теперь, рано оптимизировав, вы фактически увеличили количество обращений к базе данных.
НТН