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.
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
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.