Comment créer une relation entre une table et une vue dans Entity Framework

entity-framework sql-server-2008

Question

J'ai un modèle Entity Framework généré par l'Assistant Visual Studio 2008 basé sur une base de données SQL Server 2008.

Le modèle a une vue qui est logiquement jointe dans une relation plusieurs à plusieurs avec une autre table via une table de jointure (imposée dans la base de données par un déclencheur d'insertion / mise à jour). Les deux tables et la vue font partie du modèle, mais comme vous ne pouvez pas imposer de contrainte de clé étrangère sur une vue, celle-ci n'a pas de relation entre la vue et la table de jointure.

Est-il possible de créer une relation dans le modèle Entity Framework pour ce lien entre la table de jointure et la vue?

Merci pour toute aide.

Réponse acceptée

Oui, vous pouvez le faire, mais le concepteur d'interface graphique ne pourra pas l'inférer pour vous.

La première chose à faire est de configurer la vue correctement . Le concepteur ne peut pas déduire la clé primaire. Vous devez donc fournir ces informations.

Vous pouvez maintenant cliquer avec le bouton droit de la souris sur l'espace vide du concepteur, puis choisir d'ajouter une association. Définissez l'association entre votre vue et la table en définissant correctement la cardinalité.

Dans EF 1, vous devez supprimer les champs FK du schéma client en les sélectionnant dans le concepteur et en appuyant sur Supprimer. En effet, dans EF 1, vous ne pouvez pas mapper le même champ à une association et à une propriété scalaire. Dans EF 4, vous pouvez conserver les champs FK si vous utilisez des associations FK ou vous pouvez utiliser des associations indépendantes se comportant comme EF 1.



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow