IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entity Framework Discussion :

[MVC3 "razor"] Erreur lors de l'ajout d'un controlleur


Sujet :

Entity Framework

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 47
    Par défaut [MVC3 "razor"] Erreur lors de l'ajout d'un controlleur
    Bonjour à tous,

    Je suis étudiant en informatique, et j'ai commencé le C# il y 4 mois...

    Je suis actuellement en train de réaliser un projet dans le cadre du cours de Technologie Internet (.NET). Ce Projet consiste à réaliser une application Online de gestion de club (MVC 3 "razor" avec Bdd SQL)...Voilà un peu pour le contexte

    -Je suis en train d'utiliser l'Entity Framework 4.0 "Code First", c'est à dire que je code chacune de mes tables en classes pour ensuite créer une Bdd...

    Seulement je rencontre un message d'erreur lorsque je tente d'ajouter un contrôleur:

    Unable to retrieve metadata for 'TennisOnline.Models.Customer'. There is no store type corresponding to the EDM type 'Edm.Type 'Edm.Time(Nullable=true)' of primitive type 'Time'
    Classe "Customer "

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    namespace TennisOnline.Models
    {
        public class Customer
        {
            [Key]
            public int ID {get;set;}
     
            [Display(Name = "Code PIN")]
            [Column("Pin")]
            public int? Pin { get; set; }
     
            [Display(Name = "Nom")]
            [Column("Name")]
            [MaxLength(20, ErrorMessage = "Name cannot be longer than 20 characters.")]
            public string Name {get;set;}
     
            [Display(Name = "Prénom")]
            [Column("FirstName")]
            [MaxLength(30, ErrorMessage = "First Name cannot be longer than 30 characters.")]
            public string FirstName { get; set; }
     
            [Display(Name = "Mail")]
            [Column("Mail")]
            [MaxLength(30, ErrorMessage = "Mail cannot be longer than 30 characters.")]
            public string Mail { get; set; }
     
            [Display(Name = "Adresse")]
            [Column("Address")]
            [MaxLength(40, ErrorMessage = "Address cannot be longer than 40 characters.")]
            public string Address { get; set; }
     
            [Display(Name = "Ville")]
            [Column("City")]
            [MaxLength(20, ErrorMessage = "City cannot be longer than 20 characters.")]
            public string City { get; set; }
     
            [Display(Name = "Code postal")]
            [Column("PostalCode")]
            public int PostalCode { get; set; }
     
            [Display(Name = "Num. Tél")]
            [Column("PhoneNumber")]
            [MaxLength(20, ErrorMessage = "Phone number cannot be longer than 20 characters.")]
            public string PhoneNumber { get; set; }
     
            [Display(Name = "Num. Affiliation")]
            [Column("AffiliationNumber")]
            public int AffiliationNumber { get; set; }
     
     
     
        }
    }

    Classe "TennisOnlineContext"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    namespace TennisOnline.DAL
    {
        public class TennisOnlineContext:DbContext
        {
            public DbSet<Customer> Customers { get; set; }
            public DbSet<Manager> Managers { get; set; }
            public DbSet<MemberCode> MemberCodes { get; set; }
            public DbSet<Reservation> Reservations { get; set; }
            public DbSet<Teacher> Teachers { get; set; }
            public DbSet<TennisClub> TennisClubs { get; set; }
            public DbSet<TennisCourt> TennisCourts { get; set; }
     
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            }
        }
    }

    Pouvez-vous m'aider SVP

    Merci

  2. #2
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Bonjour,

    Entity Framework essaye de convertir ta propriété de type TimeSpan en type Time de SQL Server. Cependant, ce type n’existe pas sous SQL Server 2005, il n’est apparu que sous la version 2008.

    Il faut que tu changes le type de ta propriété.

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 47
    Par défaut
    Merci beaucoup problème résolu !!

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 47
    Par défaut
    Mais j'ai un nouveau problème depuis 50 minutes

    J'ai suivi ce tuto : http://www.asp.net/mvc/tutorials/get...vc-application


    Dans ma classe "Inizializer" j'attribue des valeurs par défaut dans ma bdd :

    Classe en question:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    namespace TennisOnline.DAL
    {
        public class TennisOnlineInitializer : DropCreateDatabaseIfModelChanges<TennisOnlineContext>
        {
            protected override void Seed(TennisOnlineContext context)
            {
     
                foreach (string line in File.ReadLines("/Content/Customer.csv"))
                {
                    string[] parts = line.Split(';');
     
                    Customer customer = new Customer();
                    customer.Pin = null;
                    customer.AffiliationNumber = int.Parse(parts[0]);
                    customer.Name = parts[1];
                    customer.FirstName = parts[2];
                    customer.Mail =String.Empty;
                    customer.Address = parts[3];
                    customer.PostalCode = int.Parse(parts[4]);
                    customer.City = parts[5];
                    customer.PhoneNumber = parts[6];
     
                    System.Diagnostics.Debug.WriteLine("test" + parts[5]);
     
                    context.Customers.Add(customer);
                    context.SaveChanges();
                }
     
                var managers = new List<Manager>
                {
                    new Manager { Pin = null, Name="Willems",FirstName="Jean-Marie",PhoneNumber="",Role="Président",AffiliationNumber=4005180 },
                    new Manager { Pin = null, Name="Angé",FirstName="Alain",PhoneNumber="",Role="Secrétaire et trésorier",AffiliationNumber=4034937 },
                    new Manager { Pin = null, Name="Beaujean",FirstName="Francis",PhoneNumber="",Role="Administrateur",AffiliationNumber=4010294 },
                    new Manager { Pin = null, Name="Follin",FirstName="Mario",PhoneNumber="",Role="Assistant travaux et entretien",AffiliationNumber=4005087 },
                    new Manager { Pin = null, Name="Gendarme",FirstName="Alain",PhoneNumber="",Role="Responsable de la publicité",AffiliationNumber=4032237 },
                    new Manager { Pin = null, Name="Angé",FirstName="Arnaud",PhoneNumber="",Role="Chargé des comptes de la commission des jeunes",AffiliationNumber=4013842 },
                    new Manager { Pin = null, Name="Angé",FirstName="Philippe",PhoneNumber="",Role="Sponsoring et organisation d'évènements",AffiliationNumber=4023069 },
                    new Manager { Pin = null, Name="Jonckeere",FirstName="Bernard",PhoneNumber="",Role="Chargé de la gestion des Interclubs",AffiliationNumber=4003851 },
                    new Manager { Pin = null, Name="Romedenne",FirstName="Guy",PhoneNumber="",Role="Chargé des relations avec la gérance",AffiliationNumber=4004295 },
                    new Manager { Pin = null, Name="Debont",FirstName="Cédric",PhoneNumber="",Role="Projet Couvert",AffiliationNumber=4016526 },
                    new Manager { Pin = null, Name="Laurent",FirstName="Cédric",PhoneNumber="",Role="Sponsoring",AffiliationNumber=4026588 },
                };
                managers.ForEach(s => context.Managers.Add(s));
                context.SaveChanges();
     
                var teachers = new List<Teacher>
                {
                    new Teacher {Name="Stein",FirstName="Guy",Pin=null,Mail="",AffiliationNumber=4002370 },
                    new Teacher {Name="Dalmans",FirstName="Marc",Pin=null,Mail="",AffiliationNumber=4005059 },
                    new Teacher {Name="Lopez",FirstName="Vincent",Pin=null,Mail="",AffiliationNumber=4023647 },
                    new Teacher {Name="Gendarme",FirstName="Alain",Pin=null,Mail="",AffiliationNumber=4032237 },
                    new Teacher {Name="Daune",FirstName="Eric",Pin=null,Mail="",AffiliationNumber=4035200 },
                    new Teacher {Name="Onclin",FirstName="Julien",Pin=null,Mail="",AffiliationNumber=4019038 },
                };
                teachers.ForEach(s => context.Teachers.Add(s));
                context.SaveChanges();
     
     
     
                var tennisClubs = new List<TennisClub>
                {
                    new TennisClub { Name="Tennis Club Visé",Address="Rue des 3 rois,1",City="Visé",PhoneNumber="043/794812" },
     
                };
                tennisClubs.ForEach(s => context.TennisClubs.Add(s));
                context.SaveChanges();
     
                var tennisCourts = new List<TennisCourt>
                {
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=true },
                    new TennisCourt { Outside=false },
                    new TennisCourt { Outside=false },
                    new TennisCourt { Outside=false },
                };
                tennisCourts.ForEach(s => context.TennisCourts.Add(s));
                context.SaveChanges();
            }  
     
        }
    }
    Ensuite, j'ai bien ajouter la ligne là dans la méthode "Application.Start" de mon fichier "Global.asax" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Database.SetInitializer<TennisOnlineContext>(new TennisOnlineInitializer());
    Au lancement de l'application, je n'ai aucune valeur dans ma bdd Avez-vous une idée ?

    Merci d'avance

  5. #5
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Par défaut
    Et il n'y a pas de messages d'erreur ? Tu as bien configuré la connectionString ?

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2012
    Messages : 47
    Par défaut
    Aucun message d'erreur et ma connexion string :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <add name="TennisOnlineContext" connectionString="Data Source=|DataDirectory|Tennis.sdf" providerName="System.Data.SqlServerCe.4.0 "/>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 08/10/2005, 14h57
  2. Erreur lors de l'ajout d'une table
    Par FredMines dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 27/07/2005, 13h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo