> Tech > Créer une entité avec BCS

Créer une entité avec BCS

Tech - Par iTPro - Publié le 23 novembre 2011
email


Nous allons maintenant créer notre entité « Personne ». Le principe va être globalement le même que pour l’entité « Film », nous expliquerons donc cela plus rapidement que précédemment dans ce cours. Si vous avez le moindre doute, n’hésitez pas à relire la méthode employée pour

créer l’entité « Film ».

Retournez donc dans votre « BCS » et faites glisser une nouvelle entité que vous nommerez « Personne ». Ajoutez également un identificateur de type « System.Int32 » que vous nommerez « Id_personne ». Ajoutez ensuite une nouvelle méthode de type « Specific Finder ». Modifiez ensuite le « Type Descriptor » pour que celui-ci colle à la définition de la classe « Personne ». Au final, celui-ci devrait ressembler à ceci : voir figure 13.

Notez que le « Type descriptor Id » a sa propriété « Identifier » définit sur « Id_personne ». N’oubliez pas non plus de définir le « Type Name » du « Type Descriptor Personne » en le redirigeant vers la classe « Personne » de votre projet.

Créez ensuite une méthode de type « ReadList ». Modifiez sa propriété « Name » sur « AllPersonnes » et « Default Complete Name » sur « Toutes les personnes ».

Ouvrez ensuite la classe « DbPersonne » et ajoutez les clauses suivantes :

using System.Data;
using MySql.Data.MySqlClient;

Implémentez ensuite les deux fonctions suivantes :

public static List GetAllPersonnes()
{
List personnes = null;
using (DataSet dataSet = new DataSet())
{
using (MySqlConnection connection = new MySqlConnection(Helper.cString))
{
connection.Open();
using (MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT id_personne, nom, prenom, image FROM personnes", 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;
}
public static Personne GetPersonneById(int id)
{
Personne personne = null;
using (DataSet dataSet = new DataSet())
{
using (MySqlConnection connection = new MySqlConnection(Helper.cString))
{
connection.Open();
using (MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT nom, prenom, image FROM personnes WHERE id_personne = " + id, connection))
{
adapter.Fill(dataSet, "Personne");
}
}
if (dataSet.Tables["Personne"].Rows.Count == 0)
throw new Exception("Aucune personne");
DataRow row = dataSet.Tables["Personne"].Rows[0];
personne = new Personne
{
Avatar = row["image"].ToString(),
Id = id,
Nom = row["nom"].ToString(),
Prenom = row["prenom"].ToString()
};
}
return personne;
}

Ces fonctions utilisent la même logique que les fonctions utilisées pour récupérer les films. Référez-vous donc à ces explications pour comprendre ces deux fonctions. Revenez maintenant sur votre « BCS », faites un clic droit sur la fonction « ReadItem » et sélectionnez « View Code ». Tapez alors :

return DbPersonne.GetPersonneById(id_personne);

Faites de même pour la fonction « AllPersonnes » et tapez :

return DbPersonne.GetAllPersonnes();

Vous pouvez maintenant déployer votre solution et refaire les mêmes étapes que précédemment. Ajoutez donc une « WebPart Business Data list » sur votre page, liez-la à l’entité que vous venez de créer, cachez la « Toolbar » ainsi que le « Chrome ». Enfin, modifiez les permissions de votre entités et actualisez votre page.
 

Téléchargez gratuitement cette ressource

Guide de Services Cloud Managés

Guide de Services Cloud Managés

Accélérer votre transformation digitale, protéger et sécuriser vos environnements Cloud avec les offres de support, d'accompagnement et de services managés. Découvrez le TOP 3 des Services Managés pour accompagner la transformation de vos environnements Cloud, gagner en agilité et en sécurité dans un monde d'incertitudes.

Tech - Par iTPro - Publié le 23 novembre 2011