Перечислите типизированные свойства в сущностях Entity Framework? - PullRequest
3 голосов
/ 27 июля 2010

Есть ли способ, которым я могу отобразить сгенерированные сущности в enum?

И что я имею в виду, просто:

class Person
{
    RelationshipStaus RelationshipStatus { get; set; }
}

enum RelationshipStatus : byte
{
    Single,
    Married,
    Divorced
}

Свойство RelationshipStatus в БД является простым байтом, я хочучто в моем проекте это должно быть перечисление.

Ответы [ 3 ]

4 голосов
/ 27 июля 2010

К сожалению, вы не можете, по крайней мере, не напрямую.Для удобства вы можете создать метод доступа, который преобразует значение в тип enum и обратно:

public int RelationshipStatusInt { get; set; }

public RelationshipStatus RelationshipStatus
{
    get { return (RelationshipStatus)RelationshipStatusInt; }
    set { RelationshipStatusInt = (int)value; }
}

Однако вы не сможете использовать эти свойства в запросах Linq для EF, поскольку он не будетбыть сопоставленным со столбцом БД (но вы можете использовать его в запросах Linq to Objects).

Здесь описано другое решение , но оно кажется немного неловким ...

2 голосов
/ 28 июля 2010

Как сказал Томас, решения не существует.

Я бы просто рекомендовал пользователям, которые столкнулись с желанием использовать перечисления в EF, и голосовать за это соединение: http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1015335-support-for-enums

0 голосов
/ 20 декабря 2014

Перечисления поддерживаются на EF ≥ 5.

См. this .

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