Comment : Définir les relations de données
Vous pouvez créer, modifier ou supprimer des relations entre les données à l'aide du concepteur de données dans LightSwitch.Les relations vous aident à créer des écrans dans lesquels les données liées fonctionnent ensemble, par exemple, un écran qui affiche à la fois les clients et leurs commandes.
Ce document contient les sections suivantes :
Ajouter une relation entre des tables ou des entités de la même source de données
Ajouter une relation entre des tables ou des entités de sources de données distinctes
Modifier une relation
Paramètres de multiplicité
Paramètres du comportement de suppression
Pour une démonstration vidéo connexe, consultez Comment définir mes données dans une application LightSwitch ?.
Ajouter une relation entre des tables ou des entités de la même source de données
Vous pouvez utiliser le concepteur de données LightSwitch pour ajouter une relation entre deux tables dans la base de données interne LightSwitch.Dans certains cas, vous pouvez également utiliser le concepteur de données pour ajouter une relation entre des entités de la même source de données externe, soumis à certaines contraintes.Sinon, vous devez créer ces relations sur le serveur, puis actualiser la connexion des données dans LightSwitch.Pour plus d'informations sur l'actualisation d'une connexion à une source de données, consultez Comment : Se connecter aux données.
Pour ajouter une relation entre des tables dans la base de données interne LightSwitch
Dans l'explorateur de solutions, double-cliquez sur l'une des tables que vous voulez utiliser dans la relation.
Dans le Concepteur de données, sur la barre de commandes, cliquez sur Relation.
Dans la boîte de dialogue Ajouter une nouvelle relation, sur la ligne Nom, sélectionnez les deux tables auxquelles vous voulez appliquer une relation, par exemple, Customers et Orders.
Sur la ligne Multiplicité, spécifiez comment vous souhaitez que ces tables soient mises en relation.Pour plus d'informations sur la multiplicité et les types de relations, consultez Multiplicity Settings.
Sur la ligne Comportement à la suppression, spécifiez le comportement de votre application lorsqu'un utilisateur tente de supprimer un enregistrement dans une table alors qu'il existe encore des données dans l'enregistrement connexe de l'autre table, par exemple, si un utilisateur tente de supprimer un client, mais qu'il existe encore des commandes passées par ce client.Pour plus d'informations, consultez Delete Behavior Settings.
Sur la ligne Propriété de navigation, fournissez un nom pour chaque propriété de navigation.Les propriétés de navigation aident les utilisateurs à naviguer entre les zones d'un écran affichant des données connexes.Les propriétés de navigation apparaissent également comme objets dans IntelliSense, et vous pouvez utiliser ces objets pour construire des expressions LINQ encode.
Cliquez sur OK.
Pour ajouter une relation entre tables dans une base de données liée
Dans l'explorateur de solutions, double-cliquez sur l'une des tables que vous voulez utiliser dans la relation.
Dans le Concepteur de données, sur la barre de commandes, cliquez sur Relation.
La boîte de dialogue Ajouter une nouvelle relation s'ouvre.
Dans la colonne Vers de la ligne Nom, sélectionnez la table à laquelle vous souhaitez appliquer une relation.
La table doit contenir une clé primaire, qui sera utilisée du côté primaire de la relation.
Sur la ligne Multiplicité, spécifiez comment vous souhaitez que ces tables soient mises en relation.
Pour plus d'informations, consultez Multiplicity Settings.
Dans la grille de données qui apparaît près du bas de la boîte de dialogue Ajouter une nouvelle relation , choisissez une propriété du côté Étrangère de la relation.
Cette propriété doit correspondre au type de données de la propriété de la clé Primaire.
[!REMARQUE]
Si la table contient une clé primaire composite, tous les types de données de la clé étrangère doivent correspondre.
[!REMARQUE]
Pour une relation zéro ou one-to-many, la propriété de la clé Étrangère ne peut être un champ obligatoire.Pour une relation one-to-many, la propriété de la clé Étrangère doit être un champ obligatoire.Pour une relation zéro ou one-to-many, les valeurs de la clé primaire doivent être utilisées des deux côtés de la relation.
Cliquez sur le bouton OK.
Ajouter une relation entre des tables ou des entités de sources de données distinctes
Vous pouvez utiliser le concepteur de données LightSwitch pour ajouter une relation entre des tables ou des entités de sources de données distinctes.Par exemple, vous pouvez ajouter une relation entre une table de la base de données interne LightSwitch et une entité d'une liste SharePoint.
Pour ajouter une relation entre deux tables ou entités de sources de données distinctes
Dans l'explorateur de solutions, double-cliquez sur l'une des tables ou entités que vous voulez utiliser dans la relation.
Dans le Concepteur de données, sur la barre de commandes, cliquez sur Relation.
Dans la boîte de dialogue Ajouter une nouvelle relation, sur la ligne Nom, sélectionnez les tables ou entités auxquelles vous voulez appliquer une relation, par exemple, Customers et Orders.
Sur la ligne Multiplicité, spécifiez comment vous souhaitez que ces tables ou entités soient mises en relation.Pour plus d'informations sur la multiplicité et les types de relations, consultez Multiplicity Settings.
[!REMARQUE]
Notez que la ligne Comportement à la suppression n'est pas activée pour ce type de relation.
Sur la ligne Propriété de navigation, fournissez un nom pour chaque propriété de navigation.Les propriétés de navigation aident des utilisateurs à naviguer entre les zones d'un écran affichant des données connexes.Les propriétés de navigation apparaissent également comme objets dans IntelliSense, et vous pouvez utiliser ces objets pour construire des expressions LINQ en code.
Dans la grille de données qui s'affiche près du bas la boîte de dialogue Ajouter une nouvelle relation, sélectionnez une propriété d'une table ou entité et une propriété connexe dans l'autre table ou entité.Ces propriétés sont les emplacements où les tables ou entités sont liées.Par exemple, sélectionnez la propriété Id d'une entité Customer et la propriété CustomerID d'une entité Order.
Cliquez sur OK.
Modifier une relation
Vous pouvez utiliser le concepteur de données LightSwitch pour modifier ou supprimer une relation.
Pour modifier une relation existante
Dans l'explorateur de solutions, double-cliquez sur l'une des entités ou tables que vous utilisez dans la relation.
Dans le Concepteur de données, sélectionnez la propriété de navigation qui représente la relation avec une autre entité ou table.Par exemple, une entité Customer peut avoir une propriété nommée Orders utilisée comme propriété de navigation dans la relation Customer-Orders.
Dans la fenêtre Propriétés, cliquez sur Modifier les propriétés de la relation.
La boîte de dialogue Modifier la relation s'affiche.
Pour modifier la relation, consultez la section appropriée dans ce document:
Ajouter une relation entre des entités de la même source de données.
Ajouter une relation entre des entités de sources de données distinctes.
Cliquez sur OK.
Pour supprimer une relation
Dans l'explorateur de solutions, double-cliquez sur l'une des entités ou tables que vous utilisez dans la relation.
Dans le Concepteur de données, cliquez avec le bouton droit sur la propriété de navigation qui représente la relation avec une autre entité ou table, puis cliquez sur Supprimer.
Paramètres de multiplicité
Le tableau suivant décrit les combinaisons des paramètres de multiplicité disponibles dans LightSwitch.
Valeur De |
Valeur Vers |
Description |
---|---|---|
One |
Zéro ou un |
Une instance « De » peut avoir une ou aucune instance « Vers », mais une instance « Vers » doit avoir une instance « De ». |
One |
Plusieurs |
Une instance « De » peut avoir plusieurs instances « Vers », mais une instance « Vers » doit avoir une instance « De ». |
Zéro ou un |
One |
Une instance « De » doit avoir une instance « Vers », mais une instance « Vers » doit avoir une ou aucune instance « De ». |
Zéro ou un |
Plusieurs |
Une instance « De » peut avoir plusieurs instances « Vers », et une instance « Vers » peut avoir une ou aucune instance « De ». |
Plusieurs |
One |
Une instance « De » peut avoir une instance « Vers », mais une instance « Vers » peut avoir plusieurs instances « De ». |
Plusieurs |
Zéro ou un |
Une instance « De » peut avoir une ou aucune instance « Vers », et une instance « Vers » peut avoir plusieurs instances « De ». |
[!REMARQUE]
Vous ne pouvez pas spécifier une relation one-to-one, zéro ou one-to-zero ou un, et many-to-many en utilisant le concepteur de données LightSwitch.
Paramètres du comportement de suppression
Le tableau suivant décrit les options que vous pouvez configurer pour définir ce qui se passe lorsqu'un utilisateur tente de supprimer un enregistrement qui fait partie d'une relation.Certaines options peuvent ne pas être disponibles pour certains types de relations.
Valeur Comportement à la suppression |
Description |
---|---|
Suppression en cascade |
Lorsque « Table1 » est supprimé, supprimer toutes les instances « Table2 » connexes. |
Restricted |
Impossible de supprimer « Table1 » s'il existe des instances « Table2 » connexes. Par exemple, sélectionnez Restreint pour spécifier qu'un client ne peut pas être supprimé s'il est lié à des commandes dans la base de données. |
Dissocier |
Lorsque « Table1 » est supprimé, affectez à la référence à « Table1 » sur les instances « Table2 » connexes la valeur null. |