Я следовал MSDN о том, как обрабатывать перечисления в Code First для EF6. Это сработало, как и предполагалось, но поле в созданной таблице, которое ссылается на перечислитель, является простым int.
Я предпочел бы создать вторую таблицу, значения которой будут соответствовать определению перечислителя в коде С#. Таким образом, вместо того, чтобы получать только таблицу, соответствующую Department в примере на MSDN, я также хотел бы видеть вторую таблицу, заполненную элементами из Faculty.
public enum Faculty { Eng, Math, Eco }
public partial class Department
{
[Key] public Guid ID { get; set; }
[Required] public Faculty Name { get; set; }
}
Исследуя проблему, я наткнулся на решение, которое предлагает создать таблицу для перечисления и заполнить ее явным образом путем заполнения.
Это кажется мне громоздким подходом и большой работой, которая должна быть выполнена автоматически. В конце концов, система знает, какие фактические значения составляют перечисление. С точки зрения БД, это все еще строки данных, так же как и объекты, которые я создаю, но с точки зрения ОО, это на самом деле не данные, а тип (слабо выраженный), который может принимать конечное и заранее известное число состояний.
Рекомендуется ли подход к заполнению таблицы "вручную"?