salut à tous.
voila, d'erreur en erreur j'ai réussi à identifier de manière plus ou moins précise mon problème.
j'ai deux classes "cadre" et "Technicien" qui héritent d'une classe abstraite "Personne".
j'ai aussi mon dbcontext qui contient l'entité "Personne" (je sais pas trop si c'est comme ca qu'on dit, mais j'espere, vous m'aurez compris)
donc souhaitant générer ma database par le "mode" Table Per Class à l'aide de l'API Fluent, je surcharge la méthode OnModeICreating de la manière suivante :
sauf que je me retrouve avec l'erreur suivante :
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 protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); modelBuilder.Entity<Cadre>().Map(m => { m.MapInheritedProperties(); m.ToTable("Cadre"); }); modelBuilder.Entity<Cadre>().Property(p => p.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); modelBuilder.Entity<Technicien>().Map(m => { m.MapInheritedProperties(); m.ToTable("Technicien"); }); modelBuilder.Entity<Technicien>().Property(p => p.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity); }
en fouillant un peu j'ai compris qu'il s'agissait de ma clé primaire qui s'incrémentait pas, et c'est normal puisque je le gère pas dans le code et j'attends de mon SGBD qu'il le fasse de lui meme. Sauf que dans ma base, je me retrouve avec mes tables "Cadre" et "Technicien" avec le bon champ Id en PK, mais non "auto-incrémenté", et en plus j'ai une table "Personne", qui elle en revanche possède un champ Id en PK et auto-incrémenté (le mode TPT quoi).Les modifications apportées à la base de données ont été validées, mais une erreur s'est produite lors de la mise à jour du contexte de l'objet. ObjectContext est peut-être dans un état incohérent. Message d'exception interne : AcceptChanges ne peut pas continuer, car les valeurs de clés de l'objet sont en conflit avec un autre objet dans ObjectStateManager. Assurez-vous que les valeurs de clés sont uniques avant d'appeler AcceptChanges.
j'ai suivi pas mal de tutos, dont celui ci entre autre :
http://weblogs.asp.net/manavi/archiv...uidelines.aspx
je reste à l'écoute de toute suggestion.
merci d'avance.
Partager