У моего приложения есть модель, которая в настоящее время использует целое число в базе данных SQL для хранения значения [Flags] Enum. Enum выглядит примерно так:
namespace MyProject.Models
{
[Flags]
public enum MyEnum : int
{
FirstThing = 1,
SomethingElse = 2,
YetAnotherOne = 4
}
}
Таким образом, если для конкретной строки это поле установлено на 3, это означает, что установлены флаги FirstThing
и SomethingElse
. Прямо сейчас я использую вспомогательный класс для преобразования и проверки значений MyEnum в / из / против целого числа, что действительно работает, но я думаю, что должен быть способ сопоставить поле SQL INT напрямую с перечислением.
В основном конечная цель - иметь список флажков, по одному для каждого возможного флага, который в конечном итоге будет сохранен в базе данных как INT.
Это хорошая идея? Если да, то как мне это сделать? Если не, должен ли я просто засосать и написать весь этот код сам (вместо того, чтобы использовать какие-то изящные уловки)?