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

ASP.NET MVC Discussion :

Insertion dans une base de données (plusieurs tables)


Sujet :

ASP.NET MVC

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Insertion dans une base de données (plusieurs tables)
    Bonjour à tous,

    En vue d'un petit projet je m'exerce avec un petit exemple de connexion à une base de données et j'essaye de remplir cette base avec une fonction pour l'exercice.
    Si je remplis une table tout cela se passe bien - c'est lorsque je remplis la deuxième table que cela coince.
    Table 1 : Produits (un produit peut appartenir à une catégorie)
    Table 2 : Categories (une catégorie peut être définie pour plusieurs produits)

    Dans mon projet j'ai deux models pour définir ces tables :

    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
    namespace CH72_EvaluationProduitMVC.Datas
    {
        public class Produit
        {
            [Key]
            public string ProduitID { get; set; }
            public string ProduitNom { get; set; }
            public string ProduitDescription { get; set; }
            public DateTime ProduitDateDeCreation { get; set; }
            public int ProduitMoyenneEvaluation { get; set; }
            public decimal ProduitPrix { get; set; }
            [ForeignKey("CategorieID ")]
            public Categorie Categorie { get; set; }
            [Required]
            [Display(Name = "Categorie")]
            public string ProduitCategorieID { get; set; }
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    namespace CH72_EvaluationProduitMVC.Datas
    {
        public class Categorie
        {
            [Key]
            public string CategorieID { get; set; }
            public string CategorieNom { get; set; }
            public string CategorieDescription { get; set; }
            public DateTime CategorieDateDeCreation { get; set; }
     
            public ICollection<Produit> Produits { get; set; }
        }
    }
    Ainsi qu'une classe DBContext
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    namespace CH72_EvaluationProduitMVC.Datas
    {
        public class ProduitContext : DbContext
        {
            public ProduitContext(DbContextOptions<ProduitContext> options) : base(options)
            {
     
            }
     
            public DbSet<Produit> Produits { get; set; }
            public DbSet<Categorie> Categories { get; set; }
    }
    Voici la fonction qui se charge de remplir la base de données :
    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
     private void ChargerDonnees()
    {
                var rnd = new Random();
                for (int i = 0; i < 40; i++)
                {
                    var produit = new Produit
                    {
                        ProduitID = i.ToString(),
                        ProduitNom = $"Produit :{i}",
                        ProduitDescription = $"C'est la description du produit numero:{i}",
                        ProduitDateDeCreation = DateTime.Now,
                        ProduitMoyenneEvaluation = 0,
                        ProduitPrix = rnd.Next(),
                        ProduitCategorieID = new Categorie
                        {
                            CategorieID = Guid.NewGuid().ToString(),
                            CategorieDescription = $"C'est la description de la catégorie numero:{i}",
                        }.CategorieID
                    };
                    _produitContext.Produits.Add(produit);
                    _produitContext.SaveChanges();
                }
    }
    En faisant ceci j'obtiens une erreur : SqlException*: Invalid column name 'CategorieID'.

    Quelqu'un pourrait il m'éclairer ? Un grand merci d'avance

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 502
    Points
    1 502
    Par défaut
    Salut,

    Ton mapping peut etre plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
        public class Produit
        {
            [Key]
            public string ProduitID { get; set; }
            public string ProduitNom { get; set; }
            public string ProduitDescription { get; set; }
            public DateTime ProduitDateDeCreation { get; set; }
            public int ProduitMoyenneEvaluation { get; set; }
            public decimal ProduitPrix { get; set; }
     
            public Categorie Categorie { get; set; }
            public string ProduitCategorieID { get; set; }
        }

    Et cote code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     var produit = new Produit
                    {
                        ProduitID = i.ToString(),
                        ProduitNom = $"Produit :{i}",
                        ProduitDescription = $"C'est la description du produit numero:{i}",
                        ProduitDateDeCreation = DateTime.Now,
                        ProduitMoyenneEvaluation = 0,
                        ProduitPrix = rnd.Next(),
                        Categorie = new Categorie
                        {
                            CategorieID = Guid.NewGuid().ToString(),
                            CategorieDescription = $"C'est la description de la catégorie numero:{i}",
                        }
                    };

Discussions similaires

  1. Parcours d'un fichier et insertion dans une base de données !
    Par condor_01 dans le forum Général Java
    Réponses: 2
    Dernier message: 24/04/2008, 09h24
  2. Insertion dans une base de donnée
    Par hamzus2005 dans le forum Bases de données
    Réponses: 1
    Dernier message: 05/07/2007, 11h40
  3. Problème d'insertion dans une base de donnèes
    Par atout dans le forum Administration
    Réponses: 14
    Dernier message: 27/12/2006, 07h07
  4. Insertion dans une base de donnée MYSQL !
    Par condor_01 dans le forum JDBC
    Réponses: 7
    Dernier message: 01/08/2006, 12h10
  5. problème d'insertion dans une base de données
    Par belmansour tidjani dans le forum JDBC
    Réponses: 7
    Dernier message: 18/01/2006, 22h13

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