Сопоставление базы данных int с флагами перечисления в модели

У моего приложения есть модель, которая в настоящее время использует целое число в базе данных 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.

Это хорошая идея? Если да, то как мне это сделать? Если не, должен ли я просто засосать и написать весь этот код сам (вместо того, чтобы использовать какие-то изящные уловки)?

1
задан John Farrell 13 October 2010 в 02:32
поделиться