2016-03-18 7 views
1

Итак, у меня есть моя база данных Weapons. Как работает мое приложение, если пользователь вводит что-то в текстовое поле, моя программа будет искать таблицу , чтобы узнать, существует ли она.Как проверить, существует ли вход пользователя в таблице базы данных?

Проблема в том, что когда я использовал эту Лямбду/LINQ, она не может использовать ее как значение bool.

private WeaponEntities dbContext = new WeaponEntities(); 

if (dbContext.Weapons.Where(weapon => weapon.WeaponName == searchBox.Text)) 
{ 

} 
+0

Нет, но вы можете рассчитывать, если было 0 или более .... – BugFinder

+5

использовать ['.Any'] (https://msdn.microsoft.com/library/system.linq.enumerable.any%28v= vs.110% 29.aspx) –

ответ

6

Вы можете проверить, если что-то существует, используя Any

dbContext.Weapons.Any(weapon => weapon.WeaponName == searchBox.Text) 

Это выражение возвратит true если объект соответствует выражению.

1

Вы можете использовать Для этого у нас есть .

dbContext.Wepons.Any(w => w.WeaponName.Equals(searchBox.Text, StringComparison.CurrentCultureIgnoreCase)) 

или

dbContext.Wepons.Exists(w => w.WeaponName.Equals(searchBox.Text, StringComparison.CurrentCultureIgnoreCase)) 

Я предлагаю Exists, потому что она имеет тенденцию опережать Любой.

+0

На самом деле вы не можете использовать эту функцию, поскольку она определена в 'List'. И 'Any' действительно не имеет такой плохой производительности, так как он вернется, как только найдет соответствующий элемент. Однако если производительность - это то, что вам нужно, вы, вероятно, захотите перейти на sql и использовать ключевое слово 'EXISTS'. –