Как сопоставить значения перечисления с таблицей поиска — Code First

Сначала я использую код и миграцию для обновления моей базы данных. У меня есть таблица поиска и соответствующее перечисление. моя таблица: Штаты

Id | State
---|-------
   |

Мое перечисление:

public enum States
    {
        good = 1,
        bad = 2
    }

Я хочу заполнить таблицу State значениями перечисления, поэтому, если я изменю значения перечисления - таблица будет изменена соответственно. Я много гуглил, но не нашел ничего вразумительного по этому поводу.

Любой базовый пример будет оценен.


comment
см. также stackoverflow.com/q/11167665/10245   -  person Tim Abell    schedule 01.06.2016


Ответы (1)


Google выдает проект EF-Enum-To-Lookup, который выглядит как он будет делать то, что вы хотите.

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

Установите его из nuget...

Install-Package ef-enum-to-lookup

Вы можете запустить это с помощью...

var enumToLookup = new EnumToLookup();
enumToLookup.Apply(context);

Вы можете запустить это из своего начального метода миграции, но вам нужно знать, что добавление члена перечисления не меняет вашу модель, поэтому, если вы используете явные миграции, начальный метод не будет запущен.

person Richard    schedule 14.05.2015
comment
Спасибо, но я забыл упомянуть, что не хочу использовать пакет ef-enum-to-lookup, потому что этот пакет работает на ef6+, и я хочу, чтобы он работал и на ef5. - person ParPar; 14.05.2015
comment
Это открытый исходный код — я предлагаю вам либо попробовать перекомпилировать его с помощью EF5, либо использовать методы, используемые в этом пакете, для достижения вашей цели. - person Richard; 14.05.2015
comment
Мне было бы интересно узнать, можно ли заставить его работать с ef5, и я был бы открыт для запросов на вытягивание. - person Tim Abell; 01.06.2016