Что самый простой путь состоит в том, чтобы сравнить перечисление с возвратом целочисленного значения из DB

Для передачи в параметрах командной строки. Например args[0] даст Вам первый параметр командной строки, если будет тот.

5
задан Community 23 May 2017 в 12:25
поделиться

5 ответов

Это должно работают как положено - просто приведите к базовому типу.

item.SomeNullableInteger == (Int32)SomeEnum.First

ОБНОВЛЕНИЕ

Лучшее и самое чистое решение - это, вероятно, обновить файл DBML.

  1. Откройте файл DBML в дизайнере.
  2. Выберите свойство типа перечисления объекта.
  3. Откройте окно свойств.
  4. Измените поле Тип выбранного свойства с System.Int32 на что-то вроде global :: SomeNamespace. SomeEnum . Возможно, он будет работать без квалификатора global , но я не уверен.

Теперь, если код регенерируется, свойство будет иметь тип перечисления, а не целое число. Если у вас есть свойства, допускающие значение NULL,

13
ответ дан 18 December 2019 в 07:55
поделиться

Преобразование перечисления в int должно помочь.

2
ответ дан 18 December 2019 в 07:55
поделиться

Согласно официальной документации, вы можете преобразовать ваше перечисление как int для сравнения.

if (item.SomeNullableInteger == (int)SomeEnum.First)

http://msdn.microsoft.com/en-us/library/sbbt4032.aspx

Для ясности кода может быть полезно объявить перечисление как

enum SomeEnum
{
   First = 1;
   Second = 2;
}
3
ответ дан 18 December 2019 в 07:55
поделиться

, чтобы

item.SomeNullableInteger == SomeEnum.First

работал:

  • имейте в виду, что First = 0 & Second = 1 ( после объявления этого перечисления)
  • SomeNullableInteger имеет тип int
  • И, конечно же, SomeNullableInteger = 0 означает для вас первый, а SomeNullableInteger = 1 означает второй.
1
ответ дан 18 December 2019 в 07:55
поделиться

Вы можете преобразовать Enum в int :

if (item.SomeNullableInteger == (int)SomeEnum.First)
{
     // Do something...
}
1
ответ дан 18 December 2019 в 07:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: