Я не думаю, что задаю вопрос правильно, но, надеюсь, вы знаете, о чем я прошу.Логическое мышление: использование динамических и статических значений для представления данных
Каковы преимущества и недостатки использования строкового значения для представления поля базы данных (или любой переменной) против использования перечисления или константы? Я не спрашиваю о типе данных, но его обрабатывает на задней панели. Для примера я использую LINQ to SQL.
Мое мышление заключается в том, что, используя перечислимое или постоянное, это: легче читать, обеспечивает совместимость, когда значения когда-либо должны быть изменены, а значение жестко закодировано - так сказать, - так что существует меньше шансов на ошибку вызванное опечаткой. С другой стороны, действительно ли мне нужен класс/структура с перечислениями членов, которые по существу действуют как поиск нужного значения?
Использование постоянного
Module Trip
Public Const OPEN As String = "Open"
Public Const PENDING_PAYMENT As String = "Pending Payment"
Public Const CANCELLED As String = "Cancelled"
Public Const CLOSED As String = "Closed"
End Module
Dim product = From p In db.Payments
Where p.PaymentId = PaymentId
For Each item In product
item.Status = PayStatus.PENDING_PAYMENT
Next
Использование строки
Dim product = From p In db.Payments
Where p.PaymentId = PaymentId
For Each item In product
item.Status = "Pending Payment"
Next
Я не думаю, что это будет работать вообще, сначала доведите свой «item.Status» return 'String' ИЛИ' Byte'? если это String Тогда вы не можете сравнить его с байтом и наоборот. –
Ya вы правы, не можете конвертировать nvarchar в float. Однако, что, если вместо Enum я использовал константы? Я обновлю свой код – KRob
Почему бы не использовать таблицу поиска в базе данных для значений статуса? – Tim