Meilleur auteur de réponses
problème de configuration d'un clé étrangère

Question
-
je suis en train de développer une application web e je me suis bloquée sur cette erreur , en effet j'ai pas compris exactement l'erreur , s'il vous pouvez m'aider et m'explique de quoi s'agit il le problème , merci d'avance
The property 'idplan' cannot be configured as a navigation property. The property must be a valid entity type and the property should have a non-abstract getter and setter. For collection properties the type must implement ICollection<T> where T is a valid entity type.
Réponses
-
Bonjour,
Vous devez sans doute utiliser Entity Framework. Et dans votre base de données, votre entité possède une propriété idplan qui est utilisée pour la lier à une autre (une personne possède une collection d'adresse => table Person + table Adress et dans Adress, il y a la colonne idPerson).
Mais dans votre cas, la colonne n'est pas indiquée comme clé étrangère dans votre base de données, donc Entity Framework a du mal.
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone- Marqué comme réponse wafa khemiri jeudi 31 mars 2016 08:35
Toutes les réponses
-
Bonjour,
Vous devez sans doute utiliser Entity Framework. Et dans votre base de données, votre entité possède une propriété idplan qui est utilisée pour la lier à une autre (une personne possède une collection d'adresse => table Person + table Adress et dans Adress, il y a la colonne idPerson).
Mais dans votre cas, la colonne n'est pas indiquée comme clé étrangère dans votre base de données, donc Entity Framework a du mal.
Richard Clark
Consultant - Formateur .NET
http://www.c2i.fr
Depuis 1996: le 1er site .NET francophone- Marqué comme réponse wafa khemiri jeudi 31 mars 2016 08:35
-
bonjour merci pour votre réponse mais la colonne est bien indiquée comme clé étrangère
voici le script de la base de données
create table Categorie (
idCategorie SERIAL not null,
nomCategorie VARCHAR(50) null,
constraint PK_CATEGORIE primary key (idCategorie)
);
create unique index CATEGORIE_PK on Categorie (
idCategorie
);
create table Favoris (
idInternaute INT4 not null,
idPlan INT4 not null,
idFavoris SERIAL not null,
date DATE null,
constraint PK_FAVORIS primary key (idInternaute, idPlan, idFavoris)
);
create unique index FAVORIS_PK on Favoris (
idInternaute,
idPlan,
idFavoris
);
create index ASSOCIATION_9_FK on Favoris (
idInternaute
);
create index FAVORIS_FK on Favoris (
idPlan
);
create table Filtre (
idCategorie INT4 not null,
idTheme INT4 not null,
idFiltre SERIAL not null,
nomFiltre VARCHAR(50) null,
constraint PK_FILTRE primary key (idCategorie, idTheme, idFiltre)
);
create unique index FILTRE_PK on Filtre (
idCategorie,
idTheme,
idFiltre
);
create index ASSOCIATION11_FK on Filtre (
idCategorie,
idTheme
);
create table Image (
idPlan INT4 not null,
idImage SERIAL not null,
fileName VARCHAR(254) null,
constraint PK_IMAGE primary key (idPlan, idImage)
);
create unique index IMAGE_PK on Image (
idPlan,
idImage
);
create index ASSOCIATION14_FK on Image (
idPlan
);
create table Internaute (
idInternaute SERIAL not null,
nom VARCHAR(50) null,
prenom VARCHAR(50) null,
dateNais DATE null,
sexe CHAR null,
email VARCHAR(50) null,
psw VARCHAR(50) null,
typeInternaute VARCHAR(50) null,
constraint PK_INTERNAUTE primary key (idInternaute)
);
create unique index INTERNAUTE_PK on Internaute (
idInternaute
);
create table Plan (
idPlan SERIAL not null,
idInternaute INT4 not null,
idCategorie INT4 not null,
nom VARCHAR(50) null,
adresse VARCHAR(50) null,
numTel INT4 null,
note INT4 null,
datePublication DATE null,
budget INT4 null,
constraint PK_PLAN primary key (idPlan)
);
create unique index PLAN_PK on Plan (
idPlan
);
create index ASSOCIATION1_FK on Plan (
idCategorie
);
create index ASSOCIATION13_FK on Plan (
idInternaute
);
create table Reservation (
idReservation SERIAL not null,
idPlan INT4 not null,
idInternaute INT4 not null,
dateDebut DATE null,
dateFin DATE null,
prix INT4 null,
constraint PK_RESERVATION primary key (idReservation)
);
create unique index RESERVATION_PK on Reservation (
idReservation
);
create index ASSOCIATION6_FK on Reservation (
idInternaute
);
create index ASSOCIATION9_FK on Reservation (
idPlan
);
create table Theme (
idCategorie INT4 not null,
idTheme SERIAL not null,
nomTheme VARCHAR(50) null,
constraint PK_THEME primary key (idCategorie, idTheme)
);
create unique index THEME_PK on Theme (
idCategorie,
idTheme
);
create index ASSOCIATION10_FK on Theme (
idCategorie
);
create table Interaction (
idInternaute INT4 not null,
idPlan INT4 not null,
idInteraction SERIAL not null,
type VARCHAR(50) null,
date DATE null,
constraint PK_Interaction primary key (idInternaute, idPlan, idInteraction)
);
create unique index Interaction_PK on Interaction (
idInternaute,
idPlan,
idInteraction
);
create index Interaction_FK on Interaction (
idInternaute
);
create index INTERAGIR_FK on Interaction (
idPlan
);
alter table Favoris
add constraint FK_FAVORIS_ASSOCIATI_INTERNAU foreign key (idInternaute)
references Internaute (idInternaute)
on delete restrict on update no action;
alter table Favoris
add constraint FK_FAVORIS_FAVORIS_PLAN foreign key (idPlan)
references Plan (idPlan)
on delete restrict on update no action;
alter table Filtre
add constraint FK_FILTRE_ASSOCIATI_THEME foreign key (idCategorie, idTheme)
references Theme (idCategorie, idTheme)
on delete restrict on update no action;
alter table Image
add constraint FK_IMAGE_ASSOCIATI_PLAN foreign key (idPlan)
references Plan (idPlan)
on delete restrict on update no action;
alter table Plan
add constraint FK_PLAN_ASSOCIATI_CATEGORI foreign key (idCategorie)
references Categorie (idCategorie)
on delete restrict on update no action;
alter table Plan
add constraint FK_PLAN_ASSOCIATI_INTERNAU foreign key (idInternaute)
references Internaute (idInternaute)
on delete restrict on update no action;
alter table Reservation
add constraint FK_RESERVAT_ASSOCIATI_INTERNAU foreign key (idInternaute)
references Internaute (idInternaute)
on delete restrict on update no action;
alter table Reservation
add constraint FK_RESERVAT_ASSOCIATI_PLAN foreign key (idPlan)
references Plan (idPlan)
on delete restrict on update no action;
alter table Theme
add constraint FK_THEME_ASSOCIATI_CATEGORI foreign key (idCategorie)
references Categorie (idCategorie)
on delete restrict on update no action;
alter table Interaction
add constraint FK_ASSOCIAT_ASSOCIATI_INTERNAU foreign key (idInternaute)
references Internaute (idInternaute)
on delete restrict on update no action;
alter table Interaction
add constraint FK_ASSOCIAT_INTERAGIR_PLAN foreign key (idPlan)
references Plan (idPlan)
on delete restrict on update no action;