Entity Framework CTP 5 - Code First Mappings - Не удается правильно сопоставить список перечислений

у меня есть следующее

[DataContractAttribute]
public class Animal
{
    [Key]
    [XmlElement(ElementName = "Id")]
    [DataMember()]
    public Guid Id
    {
        get;
        set;
    }

    [XmlElement(ElementName = "AnimalType")]
    [DataMember()]
    public List<AnimalType> AnimalType
    {
        get;
        set;
    }
 }

И я сопоставляю это с помощью первого подхода кода с EF к таблицам.

  modelBuilder.Entity<Animal>().ToTable("Animal");

Как видите, я не выполнял сложное сопоставление, но перечисления List of AnimalType не сопоставлялись автоматически с какими-либо столбцами/таблицами в БД. Нужно ли добавлять дополнительный код в конструктор моделей для управления отображением списка перечисления?


person Faris Zacina    schedule 15.12.2010    source источник


Ответы (2)


Начиная с EF CTP5, перечисления пока не поддерживаются. Команда объявила, что собирается полностью поддерживать перечисления в своей следующей RTM-версии, выпуск которой намечен на первый квартал 2011 года.

person Morteza Manavi    schedule 15.12.2010
comment
Кажется, что ребятам из Редмонда трудно понять, как преобразовать перечисления в целые числа и обратно, поскольку в EF 4.1 не будет поддержки перечислений. Теперь они утверждают, что поддержка будет добавлена ​​в vNext (4.2 или что-то в этом роде). Источник: reddevnews.com/ блоги/драйвер данных/2011/03/ - person Morten Mertner; 13.03.2011
comment
Похоже, что поддержка Enum требует внесения изменений в основные библиотеки EF, поставляемые с .Net 4.0. чего они не могут сделать в EF 4.1, потому что они не меняют основную библиотеку. - person Morteza Manavi; 13.03.2011

Я знаю, что долгое время перечисления не поддерживались EF, хотя я не знаю, так ли это сейчас или нет.

В любом случае, я думаю, что есть общая проблема с тем, что EF обрабатывает список типа, отличного от другого объекта. Что такое первичный ключ? Какова ценность? Должен ли он попытаться сохранить данные в одном столбце или создать отдельную таблицу и создать ограничение внешнего ключа? Это вопросы, на которые, вероятно, потребуется ответить, прежде чем вашу модель можно будет преобразовать в схему базы данных.

person Brian Ball    schedule 15.12.2010
comment
Да... я согласен с вашими мыслями, и, конечно, есть много нерешенных вопросов... но я думаю, что отсутствие поддержки очень плохо для EF, поскольку разработчики широко используют перечисления, и это должно быть главным приоритетом в их невыполненной работе. - person Faris Zacina; 17.12.2010