Я пытаюсь проверить на существование записи в таблице SQL в, если оператор, я пытался использовать.Count (), но теперь понять, что это не будет работать, поскольку это возвратит общую сумму всех записей в таблице.
// If the current user does not exist in the Database, then add the user
if (staffdb.Staffs.Single(s => s.Staffname == user).Count() == 0)
{
}
Я - немного новичок когда дело доходит до этого, но я сделал немного поиска сети и, может казаться, не нахожу, что что-либо уходит.
Правильное решение:
if (!staffdb.Staffs.Any(s => s.Staffname == user))
{
// ...
}
Это гарантирует, что база данных прекратит поиск, как только найдет одно. Если вы используете .Where()
, за которым следует .Count()
, это потенциально приведет к просмотру всей таблицы и получению более длинного списка, чем необходимо.
// If the current user does not exist in the Database, then add the user
if (staffdb.Staffs.SingleOrDefault(s => s.Staffname == user) == null)
{
}