> 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

TOP 5 Modernisation & Sécurité des Postes Clients

TOP 5 Modernisation & Sécurité des Postes Clients

Pour aider les entreprises à allier les restrictions liées à la crise et la nécessaire modernisation de leurs outils pour gagner en réactivité, souplesse et sécurité, DIB-France lance une nouvelle offre « Cloud-In-One » combinant simplement IaaS et DaaS dans le Cloud, de façon augmentée.

Tech - Par iTPro - Publié le 23 novembre 2011