Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fluent API Prérequis

    18 juin 2019 à 23:47:43

    Bonsoir,

    Surement une question bête (je suis en apprentissage), mais je n'arrive pas à trouver ma réponse... 

    Je travail sur un projet avec .NET Core MVC et Entity Framwork.

    Je voulais savoir si on peut utiliser Fluent API sur ?NET Core MVC 2.0

    J'ai fait une "join table" pour relier 2 classes :

    namespace CodeExperienceMVC.Models
    {
        public class PersonHobbies
        {
            public int PersonID { get; set; }
            public int HobbiesID { get; set; }
            public Person Person { get; set; }
            public Hobbies Hobbies { get; set; }
        }
    }

    Et lorsque je fait ma migration il me réclame une primary Key ! Je ne comprends pas pourquoi mes deux primary key ne fonctionnent pas comme une composite key.

    Merci pour vos réponses...

    • Partager sur Facebook
    • Partager sur Twitter
      19 juin 2019 à 11:01:59

      Bonjour,

      Oui, tu peux utiliser Fluent API sur NET Core MVC 2.0

      Fluent API est un composant dedié à Entity Framework, donc si EntityFramework tourne sous NET Core MVC 2.0, tu pourras aussi utiliser Fluent API.

      Je suppose que tu es en code first.

      Peux tu nous montrer tes classes de configurations ? Ce sont dans ces classes que tu définies les clés primaires.

      Au cas où : https://www.entityframeworktutorial.net/

      • Partager sur Facebook
      • Partager sur Twitter
        19 juin 2019 à 12:34:19

        OK, je te remercie.

        Voici ma classe Person :

        using Microsoft.AspNetCore.Mvc.Rendering;
        using System;
        using System.Collections.Generic;
        using System.ComponentModel.DataAnnotations.Schema;
        using System.Linq;
        using System.Threading.Tasks;
        using Microsoft.EntityFrameworkCore;
        using System.ComponentModel.DataAnnotations;
        
        namespace CodeExperienceMVC.Models
        {
            public class Person
            {
                [Key]
                public int PersonID { get; set; }
                public String PersonName { get; set; }
                public String PersonSurname { get; set; }
        
                public ICollection<PersonHobbies> PersonHobbies { get; set; }
            }
        }

        Et ma classe Hobbies :

        using System;
        using System.Collections.Generic;
        using System.ComponentModel.DataAnnotations;
        using System.Linq;
        using System.Threading.Tasks;
        
        namespace CodeExperienceMVC.Models
        {
            public class Hobbies
            {
                [Key]
                public int HobbiesID { get; set; }
                public String HobbiesName { get; set; }
                public String HobbiesLocation { get; set; }
                public String HobbiesInstructor { get; set; }
        
                public ICollection<PersonHobbies> PersonHobbies { get; set; }
            }
        }


        ______________________

        OK, je viens de trouver. Je n'avais pas créé la composite key dans le context :

                    modelBuilder.Entity<PersonHobbies>()
                        .HasKey(p => new { p.PersonID, p.HobbiesID });

        Merci earp91 ! :)



        -
        Edité par Natoub 19 juin 2019 à 12:48:32

        • Partager sur Facebook
        • Partager sur Twitter

        Fluent API Prérequis

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown