Я думаю, что вы можете передать Данные как второй параметр с компонентом:
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>
)
}
Или, возможно, сохраните enumvalues как строку в DB. ToString ();
Я не знаю, каково лучшее решение, я хотел бы услышать это. Наше решение состоит в том, чтобы явно ввести перечисление как
public enum MyEnum : int
{
None =0,
Value = 1,
AnotherValue =2
}
И сохраните целочисленное значение к базе данных. Когда, например, Значение 1 будет удалено, Вы все еще сможете использовать перечисление, и AnotherValue все еще имеет значение 2 в базе данных.
Мы используем небольшое приложение, которое генерирует перечислимый код (пример: NorthwindEnums.cs) от базы данных. Мы удостоверяемся, что выполнили его, и обновление влияло на библиотеки каждый раз, когда база данных изменяется.
Мы также пытаемся сохранить наши перечисления, запускающиеся в 0 и последовательный для предотвращения проблем со ссылками веб-сервиса в C#.
Некоторое время назад я создал немного инструмента, чтобы сделать это для моей компании, которая будет использовать атрибуты на перечислимых полях для разрешения "синхронизации" с таблицей в базе данных.
Инструмент мог просканировать блок и генерировать соответствующий, ВСТАВЛЯЮТ/ОБНОВЛЯЮТ команды SQL, которые синхронизировали бы базу данных с перечислимым определением в коде.
Используя перечислимые значения приемлемо, чтобы сделать, пока Вы никогда не изменяете уже присвоенные значения. При использовании стандартной основанной на роли авторизации в.NET, Вы все еще полагались бы на exisistence определенных текстовых строк в соответствующей ролевой таблице в базе данных.
Я добавляю расширенное свойство на любой таблице, к которой я должен буду получить доступ в коде как перечисление. Я затем использую программное обеспечение генерации кода (codesmith, T4, безотносительно) для генерации всего моего перечисления для меня путем поиска любой таблицы с этим свойством. Любая таблица, которая должна использоваться для этого, соблюдает некоторые основные правила (должен иметь столбец Name, и т.д.), таким образом, генератор кода знает который столбец использовать в качестве названия элементов перечисления.
После того как значения добавляются к тем таблицам, которым мы заботимся фактически, никогда не изменяют их, чтобы не повреждать сборку.