Le but maintenant va être simple. Nous aimerions que quand nous sélectionnons un film dans la « WebPart » affichant l’entité « Film », la « Web Part Personne » soit mise à jour pour n’afficher que les acteurs du film en question.
Connecter deux Web Parts
Pour cela, nous devons faire une connexion entre les deux « Web Parts ».
Si vous essayez de le faire actuellement, cela ne fonctionnera pas, car une « Business Data List » ne peut être connectée qu’avec une « Business Data Related List » (en ce qui concerne les listes en tout cas). Remplacez donc la « Web part Personne » par une « Business Data Related List ».
Le souci ici est que lorsque vous voulez sélectionner l’entité « Personne », aucun « BCS » n’apparaît (en tout cas, aucun de notre solution). C’est tout à fait normal. Pour qu’une « Business Data Related List » puisse accueillir une entité, il faut que celle-ci soit connectable. Et pour rendre une entité connectable, il faut lui faire une association via Visual Studio. Il y a plusieurs types d’association, ici, nous utiliserons la plus simple. Retournez donc dans « Visual Studio » ouvrez votre « BCS », sélectionnez « Association » dans la « Toolbox » et reliez l’entité « Film » à l’entité « Personne ».
La fenêtre qui apparaît va nous permettre de définir l’association. Commencez par lui définir un nom. Ici, nous dirons « ActorsOfFilmAssociation ». L’association ne se basera pas sur une clé étrangère ici, car la liaison entre les films et les acteurs se fait dans la table « films_acteurs » que nous n’avons pas représenté sous forme d’entité. Décochez donc la première case à cocher.
En dessous, vous avez alors les différentes associations que nous pouvons faire. Ici, nous allons laisser « AssociationNavigator », mais nous n’allons en laisser qu’une. Avant de savoir laquelle, nous devons définir ce qu’est une « AssociationNavigator ». En fait, quand ce type d’association est basé sur une entité A vers une entité B, une méthode va être créée pour l’entité A qui va permettre de renvoyer une collection d’objet de type B sur base de l’identificateur de l’entité A. Vous allez mieux comprendre. Configurez votre association de cette manière : voir figure 15.
Cela aura pour effet d’ajouter une fonction « StaffOfFilm » à l’entité « Film ». Si vous faites un clic droit sur cette méthode et que vous affichez le code, vous verrez la fonction suivante :
public static IEnumerable StaffOfFilm(int id_film)
{
throw new System.NotImplementedException();
}
Tout l’intérêt de l’association prend donc son sens. Cette méthode va permettre de renvoyer la liste (« IEnumerable ») des acteurs (« Personne ») ayant joué dans le film identifié par le paramètre (« id_film »). Avant d’implémenter le contenu de cette fonction, nous devons implémenter la fonction qui permettra de récupérer ces valeurs. Ouvrez donc la classe « DbFilm » et ajoutez la fonction suivante :
public static List GetAllPersonnesOfFilm(int id_film)
{
List personnes = null;
using (DataSet dataSet = new DataSet())
{
using (MySqlConnection connection = new MySqlConnection(Helper.cString))
{
connection.Open();
string request = string.Format(@ »SELECT id_personne, nom, prenom, image
FROM personnes
WHERE id_personne IN (
SELECT id_acteur
FROM films_acteurs
WHERE id_film = {0}
) », id_film);
using (MySqlDataAdapter adapter = new MySqlDataAdapter(request, connection))
{
adapter.Fill(dataSet, « Personnes »);
}
}
if (dataSet.Tables[« Personnes »].Rows.Count == 0)
throw new Exception(« Aucune personne »);
personnes = new List(dataSet.Tables[« Personnes »].Rows.Count);
foreach (DataRow row in dataSet.Tables[« Personnes »].Rows)
{
personnes.Add(new Personne
{
Avatar = row[« image »].ToString(),
Id = int.Parse(row[« id_personne »].ToString()),
Nom = row[« nom »].ToString(),
Prenom = row[« prenom »].ToString()
});
}
}
return personnes;
}
Revenez maintenant dans votre « BCS », faites un clic droit sur la méthode « StaffOfFilm » et tapez ceci :
return DbFilm.GetAllPersonnesOfFilm(id_film);
Vous pouvez maintenant redéployer votre solution. Cette fois, quand vous allez essayer de configurer votre « Business Data Related List », l’entité « Personne » apparaîtra. Une fois sélectionnée, connectez cette « Web Part » à l’autre « Web part » de la page : voir figure 16.
Sauvez maintenant le contenu de votre page. Etant donné que vous avez modifié les entités de votre « BCS », vous allez devoir retourner dans la centrale d’administration pour redonner les permissions nécessaires à votre compte utilisateur pour pouvoir exploiter votre « BCS ».
Une fois cela fait, revenez sur votre page d’accueil, vous remarquerez une petite modification. Effectivement, une double flèche apparaît en face de chaque ligne du tableau. SI vous cliquez dessus, la page se recharge et, automatiquement, la « Web Part Personne » affichera les acteurs ayant joué dans ce film. Vous pouvez également voir que la ligne correspondant au film sélectionné est en bleu et l’icône est devenue noire.
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- On ne peut pas gouverner ce qu’on ne peut pas voir : pourquoi la visibilité doit-elle passer avant la gouvernance en matière de sécurité des identités ?
- L’IA amplifie les risques sur les API
- Fuites de données : la France, 2ème pays le plus touché au monde début 2026
- Nomios accélère sur la cybersécurité industrielle avec un SOC renforcé et une Factory OT immersive
Articles les + lus
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
Analyse Patch Tuesday Mars 2026
Une nouvelle ère de la modernisation du mainframe
Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
À la une de la chaîne Tech
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
- Analyse Patch Tuesday Mars 2026
- Une nouvelle ère de la modernisation du mainframe
- Communes, entreprises ? Non, face au RGAA 5, l’IA seule ne rendra pas vos sites accessibles
