Как избежать зависимостей между Перечислимыми значениями в коде и соответствующими значениями в базе данных?

Я думаю, что вы можете передать Данные как второй параметр с компонентом:

export default HOC(Component1, Data)

и использовать данные в HOC:

const HOC = (WrappedComponent, data) => {
  return(
    <div>
      <h1>/*Component Name passed here*/</h1>
      <p>Data: /*Some Data passed here*/</p>
    </div>
  )
}
12
задан flesh 15 November 2008 в 10:16
поделиться

6 ответов

Или, возможно, сохраните enumvalues как строку в DB. ToString ();

1
ответ дан 2 December 2019 в 23:51
поделиться

Я не знаю, каково лучшее решение, я хотел бы услышать это. Наше решение состоит в том, чтобы явно ввести перечисление как

public enum MyEnum : int 
{
   None =0,
   Value = 1,
   AnotherValue =2 
}

И сохраните целочисленное значение к базе данных. Когда, например, Значение 1 будет удалено, Вы все еще сможете использовать перечисление, и AnotherValue все еще имеет значение 2 в базе данных.

1
ответ дан 2 December 2019 в 23:51
поделиться

Мы используем небольшое приложение, которое генерирует перечислимый код (пример: NorthwindEnums.cs) от базы данных. Мы удостоверяемся, что выполнили его, и обновление влияло на библиотеки каждый раз, когда база данных изменяется.

Мы также пытаемся сохранить наши перечисления, запускающиеся в 0 и последовательный для предотвращения проблем со ссылками веб-сервиса в C#.

0
ответ дан 2 December 2019 в 23:51
поделиться

Некоторое время назад я создал немного инструмента, чтобы сделать это для моей компании, которая будет использовать атрибуты на перечислимых полях для разрешения "синхронизации" с таблицей в базе данных.

Инструмент мог просканировать блок и генерировать соответствующий, ВСТАВЛЯЮТ/ОБНОВЛЯЮТ команды SQL, которые синхронизировали бы базу данных с перечислимым определением в коде.

0
ответ дан 2 December 2019 в 23:51
поделиться

Используя перечислимые значения приемлемо, чтобы сделать, пока Вы никогда не изменяете уже присвоенные значения. При использовании стандартной основанной на роли авторизации в.NET, Вы все еще полагались бы на exisistence определенных текстовых строк в соответствующей ролевой таблице в базе данных.

1
ответ дан 2 December 2019 в 23:51
поделиться

Я добавляю расширенное свойство на любой таблице, к которой я должен буду получить доступ в коде как перечисление. Я затем использую программное обеспечение генерации кода (codesmith, T4, безотносительно) для генерации всего моего перечисления для меня путем поиска любой таблицы с этим свойством. Любая таблица, которая должна использоваться для этого, соблюдает некоторые основные правила (должен иметь столбец Name, и т.д.), таким образом, генератор кода знает который столбец использовать в качестве названия элементов перечисления.

После того как значения добавляются к тем таблицам, которым мы заботимся фактически, никогда не изменяют их, чтобы не повреждать сборку.

0
ответ дан 2 December 2019 в 23:51
поделиться
Другие вопросы по тегам:

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