2010-12-15 82 views
3

Je les suivantesEntity Framework CTP 5 - Premier code Mappages - ne peut pas mapper correctement une liste enum

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

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

Et je mapper par la première approche de code avec EF aux tables

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

Comme vous le voyez, je n'ai pas effectué de mappage complexe, mais les énumérations List of AnimalType n'ont pas été mappées automatiquement aux colonnes/tables de la base de données. Ai-je besoin d'ajouter du code supplémentaire au générateur de modèle pour contrôler le mappage d'une liste d'énumération?

Répondre

8

À partir de EF CTP5, les enums sont et non pris en charge pour le moment. L'équipe a annoncé qu'ils vont soutenir pleinement énumérations dans leur prochaine version RTM qui vise à être libéré sur le premier trimestre de 2011.

+1

Il semble que les gars de Redmond ont du mal à comprendre comment lancer énumérations à ints et à l'arrière, car il n'y aura pas de soutien ENUM dans EF 4.1. Ils prétendent maintenant que le support sera ajouté dans vNext (4.2 ou autre). Source: http://reddevnews.com/blogs/data-driver/2011/03/entity-framework-code-first-no-enum.aspx –

+0

On dirait que énumérations support nécessitent des modifications aux bibliothèques EF de base fournis avec .Net 4.0 . ce qu'ils ne peuvent pas faire dans EF 4.1 parce qu'ils ne changent pas la bibliothèque de base. –

+0

c'est vraiment une mauvaise nouvelle ... – Stacker

1

Je sais depuis longtemps, les enums n'étaient pas supportés par EF, même si je ne sais pas si c'est toujours le cas ou non.

De toute façon, je pense qu'il existe un problème général avec EF qui gère une liste d'un type autre qu'une autre entité. Quelle est la clé primaire? Quelle est la valeur? Devrait-il essayer de stocker les données dans une colonne ou créer une table séparée et créer une contrainte de clé étrangère? Ce sont des questions auxquelles il faudra probablement répondre avant que votre modèle puisse être converti en un schéma de base de données.

+3

Oui .. Je suis d'accord avec vos pensées, et bien sûr il y a beaucoup de questions en suspens. . mais je pense que ce manque de soutien est assez mauvais pour EF, car les développeurs utilisent intensivement les énumérations, et il devrait être une priorité absolue sur leur carnet de commandes. –