3 votes

Propriétés typées enum dans les entités d'Entity Framework ?

Existe-t-il un moyen de faire correspondre les entités générées à des énumérations ?

Et ce que je veux dire est simple :

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

enum RelationshipStatus : byte
{
    Single,
    Married,
    Divorced
}

La propriété RelationshipStatus dans la base de données est un simple octet, je veux que dans mon projet elle soit une énumération.

4voto

Thomas Levesque Points 141081

Malheureusement, vous ne pouvez pas, du moins pas directement. Pour plus de commodité, vous pouvez créer un accesseur qui convertit la valeur vers et depuis le type de l'énumération :

public int RelationshipStatusInt { get; set; }

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

Cependant, vous ne pourrez pas utiliser ces propriétés dans les requêtes Linq to EF, car elles ne seront pas associées à une colonne de la base de données (mais vous pouvez les utiliser dans les requêtes Linq to Objects).

Une autre solution est décrite aquí mais c'est un peu gênant...

2voto

Shimmy Points 23393

Comme l'a dit Thomas, il n'y a pas de solution.

Je recommanderais simplement aux utilisateurs qui ont rencontré le désir d'utiliser les enums dans EF, de voter pour cette connexion : http://data.uservoice.com/forums/72025-ado-net-entity-framework-ef-feature-suggestions/suggestions/1015335-support-for-enums

0voto

Shimmy Points 23393

Les énumérations sont prises en charge par EF 5.

Véase cette .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X