Как я могу отобразить Enum, используя Entity Framework 4.1 Fluent API? - PullRequest
3 голосов
/ 20 сентября 2011

Я немного потерял между листами EF ... Как и весь свободный мир, мне действительно нужно использовать Enums в моих POCO.Как и многие, с кем я общаюсь, мне бы очень понравилось отображать Enums с использованием только кода, потому что, ну, я просто не очень люблю картинки.

Мое затруднение в том, что я получаю противоречивую информацию почти по каждой статье, которую я публикую.Еще сложнее отсеять пользовательские реализации или «расширения», опубликованные людьми, чтобы попытаться обойти недостаток EF.

В EF June CTP объявляется поддержка перечислений и пространственных типов, но кажется, что поддержка приходит только при использовании дизайнера?А также, является ли июньская часть CTP в обновлении 1 для EF 4.1 или все еще не RTM?

Если есть способ поддержки Enums с помощью Fluent API, я был бы признателен всем, кто может мне помочь или направитья в правильном направлении!

Спасибо, Джейсон

Ответы [ 2 ]

4 голосов
/ 21 сентября 2011

Перечисления не поддерживаются текущей версией EF. Они поддерживаются в CTP-версии в июне 2011 года как для EDMX, так и для отображения кода, но у CTP нет рабочей версии - она ​​не является частью EF 4.1 Update 1 или более поздней версии EF 4.2. Имхо, если нам очень повезет, он станет частью .NET 4.5.

Самый простой способ использовать перечисления сейчас - это использовать два свойства: сопоставленное свойство int и не сопоставленное перечисление, преобразовывающее из сопоставленного int:

public class Test
{
    public int EnumValue { get; set; }
    public EnumType Value 
    {
        get { return (EnumType)EnumValue; }
        set { EnumValue = (int)value; }
    }
}

При использовании этого подхода нельзя использовать перечисления в Linq для запросов сущностей.

0 голосов
/ 26 января 2012

Enum не поддерживается в EF на данном этапе.Последний выпуск 4.2 имеет только исправления ошибок.Похоже, поддержка Enum будет в EF 5, которая выйдет с .Net 4.5.Пожалуйста, прочитайте http://social.msdn.microsoft.com/Forums/en/adodotnetentityframework/thread/67a9247e-eccf-4b14-9da1-db630e408ae8

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...