Je recycle ce sujet, car le thème est le même. Seul le problème a changé.
Je recycle ce sujet, car le thème est le même. Seul le problème a changé.
En informatique, le problème se situe toujours entre le clavier et l'écran !
Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.
J'ai les entités suivantes :et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public class Character { public int ID { get; set; } [...] [Display(Name = "Famille")] public virtual ICollection<CharacterRelationship> CharacterRelationships { get; set; } }et le DBContext suivant
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 public class CharacterRelationship { public int ID { get; set; } [Display(Name = "Personnage")] public int CharacterID { get; set; } [Display(Name = "Personnage apparenté")] public int SiblingID { get; set; } [...] public virtual Character Character { get; set; } public virtual Character Sibling { get; set; } }Mon problème est que lorsque Entity Framework génère la base de données à partir de ces classes, il me génère une colonne foreign Key supplémentaire. Character_ID et ignore totalement celle que je veux créer CharacterID.
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 public class MyContext : DbContext { public DbSet<Character> Characters { get; set; } public DbSet<CharacterRelationship> CharacterRelationships { get; set; } protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<CharacterRelationship>() .HasRequired(c => c.Character) .WithMany() .HasForeignKey(c => c.CharacterID); modelBuilder.Entity<CharacterRelationship>() .HasRequired(c => c.Sibling) .WithMany() .HasForeignKey(c => c.SiblingID) .WillCascadeOnDelete(false); } }
J'ai essayé de mettre des attribut sur mes propriétés virtuelles pour indiquer le nom de la FK, mais rien n'y fait.
Pouvez-vous éclairer ma lanterne ?
En informatique, le problème se situe toujours entre le clavier et l'écran !
Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.
J'ai nommé la foreign key sur la prop de navigation Character et supprimé çaet c'est réglé.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 modelBuilder.Entity<CharacterRelationship>() .HasRequired(c => c.Character) .WithMany() .HasForeignKey(c => c.CharacterID);
En informatique, le problème se situe toujours entre le clavier et l'écran !
Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager